Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: enable processing of RUM transactions, spans, and errors as a unit #4231

Closed
axw opened this issue Sep 23, 2020 · 2 comments
Closed

Comments

@axw
Copy link
Member

axw commented Sep 23, 2020

When the server receives events from agents, they are treated as a stream of independent events. This is really the only sensible thing to do for backend agents, as they are not guaranteed to send transactions, and related spans and errors in the same request.

For RUM, we are guaranteed that spans and errors will always be sent in the same request as their transaction. (@jahtalab @vigneshshanmugam correct me if I'm wrong)
Moreover in the RUMv3 protocol, spans are nested in their corresponding transaction; we split them apart.

For RUM only: if we maintained the relationship between spans, errors, and their parent transaction, then we could apply more intelligent processing of these events. For example, the server could:

Note that any such processing would have to occur before tail-sampling. Once events are persisted to local storage, it would be too inefficient to restore the relationship information.

@hmdhk
Copy link
Contributor

hmdhk commented Sep 23, 2020

@axw , thanks for creating the issue. One correction is that only transactions and spans are guaranteed to be sent in one requests, errors might be send separately (depending on timing).

Generally I think it's a good idea to have some processing on the server side, although I think we should decide these on a case by case basis. e.g. going over all spans to aggregate longtasks might be too inefficient, while the agent has more efficient ways to aggregate these (I leave the performance side of it to you). In any case it's good to know if such processing is a possibility going forward.

@axw
Copy link
Member Author

axw commented Jun 16, 2022

I don't think we'll be implementing this any time soon. For adjusting timestamps, we should consider implementing the solution we can up with for iOS (#5173) in the RUM agent. For aggregation, we can take a similar approach to what's described in #5936.

@axw axw closed this as not planned Won't fix, can't repro, duplicate, stale Jun 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants