-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Allow to limit number of spans per trace for UI #2496
Comments
It'd be nice if we could paginate the response if there are more than let's say 10k spans. It might be hard though to figure out a nice way to display that though |
as these sorts of issues tend to be re-hash in nature, and usually recreate content in various places, can we move parts of the discussion where some history exists?
We don't have any issue at the moment on mitigating based on span count at ingress (collection). I think this issue has new discussions on that point, and probably deserves to put mind on it. |
some notes about the issue here.
I do think span count pruning has been discussed in brave, but there are issues about how that affects things. collector side would involve state to track it.. this is possible to do in single instance scenarios or where there are some shared state you can look up based on trace ID. I can see why someone would wonder about if we could special case this in the in-memory collector as we already have collections by trace ID. |
@timothybasanov ps do you mind hopping on gitter for the load test related questions? I want to dig into them but not wander the issue too much https://gitter.im/openzipkin/zipkin |
We probably can close this ticket (and related) as duplicates of one big ticket. I think other tickets are slightly different from this one: they are about slow UI, this one is about UI silently crashing with exceptions (overflow and/or browser crash) and server silently failing with exceptions (integer overflow). I don't expect Zipkin to work well with big traces, I just want it to not to crash. |
I'd prefer to have tickets for individually solvable things even if there
is a big ticket with tickboxes. especially where existing tickets are
present.
this will help reduce a problems with the big ticket approach including.
* long winding discussions (tickets dont thread as well as email etc)
* rehashing incompletely discussions that already exist in a new place
* reduced approachability of doing anything as the work feels too big.
iotw please let's not close existing issues unless they are done or dupes
of older issues.
I am pretty sure there were other tickets that discussed what to do with
large traces. difference between 10k and 1M is a factor of that discussion.
however it is fine with me to repurpose this issue for too huge to load
traces. please dont close this as I dont want to require people to have to
look at two issues to get the discussion so far.
…On Sat, Apr 13, 2019, 4:40 AM Timothy Basanov ***@***.***> wrote:
We probably can close this ticket (and related) as duplicates of one big
ticket.
I'll try to talk on Gitter in more detail on what I'm doing locally with
tests. :)
I think other tickets are slightly different from this one: they are about
*slow* UI, this one is about UI silently crashing with exceptions
(overflow and/or browser crash) and server silently failing with exceptions
(integer overflow). I don't expect Zipkin to work well with big traces, I
just want it to not to crash.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#2496 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAD61zFw4GYokg_tCSqsGxDP8VxQOu8Sks5vgOElgaJpZM4crNNh>
.
|
on this particular point of too big to load at all. there seem to be two ways about it if we are focusing on after the fact (UI) vs before (collection)
while UI is primary user of api, it isn't the only user. so changing the API with special hooks is likely not worth doing. The api is not suited enough to retrofit to things like pagination quickly also. This issue is about preventing crashes so we can keep that in mind. there are three entry points which this limiting concerns:
I can think of some remedies, and we have to remember this is different than the other issue about too big, but not too big to crash. I think simple way out would be to just refuse to load when payload is larger than say 5MiB by default, with a setting one can update. I prefer size based as traces can be huge for other reasons not just span count like too many tags or annotations. Another way that comes to mind is look at what tools exist for incremental parsing of json. cc @openzipkin/ui |
opened #2498 on the in memory storage special casing though it wont work for other storage. rationale being that it is meant for testing so maybe we can improve the limiter |
suggested by @jorgheymans on what to do when said limit is reached in #2554
|
fwiw @bulicekj at the last UI workshop had the same idea I think, which was some sort of progressive loading in a trace. there are some issues about that as we do validation up front etc. but anyway I think this is helpful https://cwiki.apache.org/confluence/display/ZIPKIN/2019-04-17+UX+workshop+and+Lens+GA+planning+at+LINE+Fukuoka |
actually I missed #2411 is the better issue for the progressive loading.. argh |
Feature:
Additional configuration parameter to limit number of spans within a single trace.
Can potentially be applied to search results and/or in-memory storage.
Rational
Accidentally running a big fan-out job may create trace with a million spans. This affects user in several ways:
zipkin2.server.internal.ZipkinQueryApiV2#writeTraces
has an integer overflow when resulting JSON is more than 2GB in sizeProposed solution:
The text was updated successfully, but these errors were encountered: