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

Redesign Trace Timeline #2736

Merged
merged 89 commits into from
Oct 21, 2019

Conversation

tacigar
Copy link
Member

@tacigar tacigar commented Aug 5, 2019

resolve #2672
resolve #2525
resolve #2195

@tacigar tacigar added enhancement ui Zipkin UI labels Aug 5, 2019
@tacigar
Copy link
Member Author

tacigar commented Aug 5, 2019

Current state

  • Use SVG for trace graph
  • Fix page header
  • Add trace tree lines

Screenshot 2019-08-05 13 26 19

@tacigar
Copy link
Member Author

tacigar commented Aug 5, 2019

Current State

  • Add span detail on the right side of the page.

In #2525 , I said that I wanted to set the span details on the right side of the page.
And I got some feedback about it.
As a result of thinking, by providing a button to collapse the span details, now I think that the point of concerns may be resolved.

Screenshot 2019-08-05 15 26 26

@tacigar
Copy link
Member Author

tacigar commented Aug 6, 2019

Current State

  • Add TimeMarker
  • Add expand/collapse button
  • Add dummy buttons

Screenshot 2019-08-06 19 08 38

@devinsba
Copy link
Member

devinsba commented Aug 6, 2019

I like it, I'd love to see what it looks like with some of the more extreme example data. Like the depth > 10 data or 1000+ spans

@codefromthecrypt
Copy link
Member

Thanks for starting this effort. it is daring work!

I have an image with feedback. I think this is also a good time to add "site tags" at a stable place in the view as discussed before, though not necessarily in this change.

Screenshot 2019-08-07 at 9 45 36 AM

cc @openzipkin/ui

@codefromthecrypt
Copy link
Member

codefromthecrypt commented Oct 4, 2019

somethings noticed:
TraceId: part is not completely precise when re-rooting. I think we should display the span ID when navigated here.. even better if the url could.

ex show "80f198ee56343ba864fe8b2a57d3eff7-e457b5a2e4d86bd1" if rooted to the ID e457b5a2e4d86bd1 in the trace 80f198ee56343ba864fe8b2a57d3eff7

nice plus would be to instead of showing

http://localhost:9411/zipkin/traces/80f198ee56343ba864fe8b2a57d3eff7
to show

http://localhost:9411/zipkin/traces/80f198ee56343ba864fe8b2a57d3eff7-e457b5a2e4d86bd1

I'm using hyphen format as that is the same as b3 single format https://github.com/openzipkin/b3-propagation#single-header

@codefromthecrypt
Copy link
Member

codefromthecrypt commented Oct 4, 2019 via email

@codefromthecrypt
Copy link
Member

codefromthecrypt commented Oct 4, 2019 via email

@anuraaga
Copy link
Contributor

anuraaga commented Oct 4, 2019

If the API leaves out duration in some cases, it would be nice to set a duration of 1 when fetching and duration is missing since that is the restraint set by the model, and then we don't need to have as many checks at business logic call sites.

@codefromthecrypt
Copy link
Member

codefromthecrypt commented Oct 4, 2019 via email

@anuraaga
Copy link
Contributor

anuraaga commented Oct 4, 2019 via email

@codefromthecrypt
Copy link
Member

codefromthecrypt commented Oct 4, 2019 via email

@anuraaga
Copy link
Contributor

anuraaga commented Oct 4, 2019

Since the yaml you linked indicated minimum duration is 1, I figured you were trying to say no duration is the same as 1 but apparently not.

Anyways going to go ahead and pull out of this PR since this isn't helping.

@codefromthecrypt
Copy link
Member

@anuraaga About the duration 1 issue. trying to solve the programming cleanliness indeed does help. Duration 1 as a solution raised strong antibodies, but I don't think that was your original intent. I wanted to make sure that didn't happen as then we would have to immediately undo it. I'm sorry as I was literally presenting at the time, it was hard for me to give complete context.

I'm most concerned about adding a 1 duration as that will make it hard to see errors or incomplete spans. Also, I'm worried about alignments and things, or people wondering why it took 1us. We have an existing issue somewhere to alert people about broken or incomplete traces, and don't want to make that harder to do. That's why I had strong pushback about coercing absent duration to 1.

  • When I mentioned that duration 1 is the only valid one I meant to emphasize we can use this to our advantage. That knowing this zero is the same as absent. If we have numerical calculations, we can use zero, in other words.
  • when I said "span cleaner" I literally meant src/zipkin/span-cleaner.js. For example, here we add an empty list for annotations for reasons such as this.

So, to put it all together :) I didn't say explicitly, wasn't online really or anything and it was hard for me to see the contexts of the different angles.. but here's the advice.

It is normal to have span cleaning, knowing duration is 0 is same as absent, then change span-cleaner to backfill zero duration. I think this will solve the programming problem. Adding (getting total duration of a row, which I think this comment was about) is ok.

Main thing if we do this is make sure code that does percentage skips span with zero duration: we don't yet know their duration. Be careful to check, that's all. I don't even remember if we do any percentage anymore in the UI, so this point might be a relic of the old one.

@jeqo
Copy link
Member

jeqo commented Oct 6, 2019

nit: REROOT or RESET ROOT instead RESET REROOT

@codefromthecrypt
Copy link
Member

+1 to RESET ROOT since double-clicking ideally just moves back one root.. the RESET ROOT would only be there to go all the way back to root.

@llinder
Copy link
Member

llinder commented Oct 7, 2019

Changes look really nice! All of the images showing the progression and feedback in the PR is really helpful so thanks to everyone for taking time on those!

@codefromthecrypt
Copy link
Member

@tacigar no pressure, but what's the status on this?

@codefromthecrypt
Copy link
Member

@tacigar if you are swamped, I can try rebasing and addressing remaining review comments. Generally, it is a good idea to keep large change contained and I think this is nearly there. Lemme know.

@tacigar
Copy link
Member Author

tacigar commented Oct 21, 2019

Sorry, I was busy at another work.
I can restart it now.
I'll finish this work as soon as possible.

@tacigar
Copy link
Member Author

tacigar commented Oct 21, 2019

somethings noticed:
TraceId: part is not completely precise when re-rooting. I think we should display the span ID when navigated here.. even better if the url could.

Thank you for your feedback!
I agree with you.
But I don't want to make this PR bigger anymore, so I don't work on URL for now.
I only show rerooted span ID in page header.
I'll do it after this PR.

@tacigar
Copy link
Member Author

tacigar commented Oct 21, 2019

PTAL 🙇

@codefromthecrypt
Copy link
Member

I have high confidence. just local testing now.

@codefromthecrypt codefromthecrypt merged commit 8902c9e into openzipkin:master Oct 21, 2019
@codefromthecrypt
Copy link
Member

This is really so good. great work @tacigar!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
8 participants