jaegertracing / jaeger-ui

Web UI for Jaeger
http://jaegertracing.io/
Apache License 2.0
1.11k stars 474 forks source link

Compare traces the same service running on different nodes #447

Open pavolloffay opened 4 years ago

pavolloffay commented 4 years ago

When a service runs on different machines it produces different process objects. This causes that compare screen identifies the same service/operation_name as different. See the red node on the screenshot. Below the red node is the same node but it runs on a different machine so it is recognized as a different process.

If the ip/hostname is taken into account the compare feature might display misleading results in k8s environment when multiple replicas are being used.

Screenshot of Jaeger UI (1)

https://pastebin.com/D2v9VYc8 https://pastebin.com/cFRXNrKq

yurishkuro commented 4 years ago

nit: please use pastebin for long json

I am surprised Process tags are even considered in the comparison. I would've though it should only be service/operationName.

tiffon commented 4 years ago

@yurishkuro, @pavolloffay The comparison doesn't consider process tags. The reason the two reviews.bookinfo nodes are not grouped is because one is a leaf while the other is not.

The span's traits drive the comparison are:

The code that generates this "group-ID":

https://github.com/jaegertracing/jaeger-ui/blob/d93b8e8b3ac27aecef9f0e0e8c2cd6b21ddc3f51/packages/jaeger-ui/src/model/trace-dag/DagNode.tsx#L19-L22

While it's not really relevant to this ticket, another factor that affects the comparisons is that some spans within a trace are ignored when spans are assigned to groups. TLDR: client spans are ignored (generally).

denseTransforms.tsx