-
Notifications
You must be signed in to change notification settings - Fork 714
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
Can not filter by “Duration (μs)> =” in the UI #277
Comments
the duration query depends a lot on how your apps are instrumented and |
From @michaelsembwever on October 26, 2016 6:42 @longinhit it's supported in the cassandra3 storage, if you're able to upgrade. |
From @dangets on November 21, 2016 17:17 Is this the same issue with the Elasticsearch backend? Results that shouldn't be are getting filtered out. |
what instrumentation are you using? are the traces you are sending |
fyi here's a status report on libraries that properly address |
From @dangets on November 22, 2016 16:29 We are using brave v3.15.1. We were previously using v3.9.1 until a few weeks ago and that is around when we started seeing the problem (upgraded brave and zipkin-server jar). We do use a custom jmeter setup to run automated tests and we generate a traceId before sending the initial request so that we can log traceIds alongside request logs. Using the raw endpoint I am seeing sr and ss on the top-level span but it looks like the duration field is missing from that span. Again, this was working previously - is this something that has changed during the deprecation of the |
From @dangets on November 22, 2016 19:12 I verified that when I hit an endpoint using curl and specifying a traceId in the headers the duration does not show up. Without the headers it does. And we found this comment that says a timestamp/duration won't be kept if a traceId is sent - perhaps the cause? brave/brave-core/src/main/java/com/github/kristofa/brave/ServerRequestInterceptor.java Line 50 in 181a2f4
Does a backfilling as mentioned in the comment ever happen? |
I'll look into this now. It it is a root span, we should be setting |
@dangets we are missing a feature, which is to accommodate externally provisioned root spans. The trick is to use a heuristic which doesn't accidentally double-report duration in the root span. The only thing I can think of is to look for absence of the In other words, don't have jmeter set Change coming in a bit |
@adriancole Thanks! We can definitely do that. |
There are some who want to control trace identifiers, but leave the sampling decision to the next hop. In this case, they propagate the required headers (X-B3-TraceId, X-B3-ParentId) and not X-B3-Sampled. When this happens, the receiver of the headers (the server), should sample the trace ID before using it. Before, we weren't implementing this (eventhough Finagle does). The change here addresses it and also backfills tests accordingly. See https://github.com/twitter/finagle/blob/develop/finagle-http/src/main/scala/com/twitter/finagle/http/Codec.scala#L341 See https://github.com/twitter/finagle/blob/develop/finagle-core/src/main/scala/com/twitter/finagle/tracing/Tracer.scala#L119 See openzipkin/b3-propagation#8 Fixes #277
going out now as 3.15.4 lemme know if it doesn't work! |
Just tested it, looks good. Duration on root trace is showing up and filtering in the UI works as expected. Thanks! |
From @longinhit on October 24, 2016 9:50
Copied from original issue: openzipkin/zipkin#1349
The text was updated successfully, but these errors were encountered: