-
Notifications
You must be signed in to change notification settings - Fork 525
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
How to handle partial transactions in intake v2? #1241
Comments
If the transaction can somehow contain the number of spans it should have (eg. |
No idea of how this all plays together, but can it happen that with DT, a user might click on a span to eg. see a trace on an upstream service, so you have to lookup by |
Will the transaction eventually show up (and how long will that take) or can the transaction be permanently lost? Today I don't think there is any way to view spans, if the transaction is missing, so the problem can't exist. |
With v2 it could definitely happen that a transaction is permanently missing. |
I'm not sure I fully understand what happens in V2. Is it possible we can have a zoom about it tomorrow? |
that should be possible |
FYI: There's a long running discussion about this in the v2 protocol design proposal |
Can all the @elastic/apm-agent-devs tick off if they are fine with adding the
The UI would then take care off showing some indicator that spans are missing. We are aware that the agents can only count spans started before the transaction is finished and sent to the server. For the part where spans are stored but transactions are missing, the UI will figure out a way to show the spans. The spans still store information like |
The RUM agent is not affected by this since we have decided to send all spans for a given transaction in the same request (due to timestamp issue)! It is not a big problem to send |
+1 for making it optional, for backwards compatibility |
@jahtalab even if you ensure to send transaction + spans in the same http request, the server might only process parts of the http request. It could still happen that some spans are missing in ES eventually. Thus the counter could also be useful for RUM. @felixbarny if we agree agents will always send the information we can make it required for v2, as this hasn't been released yet. |
@simitt , What are the possible scenarios that a partial process of a request could happen? |
e.g. if some of the events in an http request can be processed and stored, but then the internal Server queue is full and events are dropped. |
I see |
@roncohen correct. And I like your suggestion |
I am fine with renaming on the Intake API, but renaming |
@simitt OK. Would it be an option to use the opportunity now with intake v2 to change it just in the API and keep it the way it is in the Elasticsearch mapping? For 7.0 we can change the ES mapping, without requiring an update to the API. |
We can absolutely do that. Will add it. @elastic/apm-agent-devs the
|
Is there a place which lists all the changes in v2? It would be also great to see which changes are already in the v2 branch and which changes are anticipated. |
@felixbarny No public place AFAIK. There's the Google Doc but we should preferably have some place public. Maybe move the contents of the google doc to this repo, @roncohen @watson ? |
Can we please move this discussion outside of this issue, and to the V2 meta issue. |
agree to use the v2 meta issue. I'm checking off boxes as things get merged. |
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements #1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements elastic#1241
Require `transaction.span_count.started` on Intake API v2, not indexed in ES. Rename `transaction.span_count.dropped.total` to `transaction.span_count.dropped` on Intake API v2, leave unchanged in ES. implements #1241
Is it problematic if spans are missing for transactions?
If so can we detect missing spans server side and log or report them anywhere? What should the behaviour be if missing spans are detected?
Figure out a solution together with @elastic/apm-ui .
The text was updated successfully, but these errors were encountered: