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

[RUM v3] Optimize fields #3404

Closed
jalvz opened this issue Feb 27, 2020 · 4 comments
Closed

[RUM v3] Optimize fields #3404

jalvz opened this issue Feb 27, 2020 · 4 comments

Comments

@jalvz
Copy link
Contributor

jalvz commented Feb 27, 2020

This includes:

  • Derive parent_id, trace_id and transaction_id in the span from its transaction

  • Make required booleans optional, defining absence as false ( sync)

  • Make start and duration int.

  • Remove unneeded fields: transaction.marks.navigationTiming, http.url

@axw
Copy link
Member

axw commented Feb 28, 2020

Make start and duration int.

They're currently "number", which allows the agent to send an integer as well as a float. What's the reason for making the schema stricter?

@jalvz
Copy link
Contributor Author

jalvz commented Feb 28, 2020

They're currently "number", which allows the agent to send an integer

Good point, I haven't noticed.
But while looking at how to implement this, I changed my mind about the approach: it's probably simpler for us that the agent embeds the spans inside their transactions.

There is no easy way that we can take fields out of a transaction decoder and pass them as arguments to the spans decoder.

I think we would need an specific HandlerRawModel for this, or a flag inside the processor, and it would break the uniformity of the work flow (decoder signatures, etc).

wdyt?

@axw
Copy link
Member

axw commented Mar 3, 2020

If the RUM agent will always have spans within transactions, then I think we wouldn't need or want a separate span decoder. The RUM transaction decoder would return a Transformable which internally combines info from the transaction and embedded span objects to produce the transaction and span docs.

@jalvz
Copy link
Contributor Author

jalvz commented Apr 17, 2020

All boolean fields are optional, so they can default to false when missing.

I think that with #3659 this can be closed.

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