Table of Contents |
---|
Introduction:
This document describes how to trace/map the request across multiple sub-systems involved in process of serving/showing the details.
...
Here we use the headers
map as the carrier. The Tracer object knows which headers it needs to read in order to reconstruct the tracer state and any Baggage.
Pros:
Can able to find the time taken on each sub-modules easily based on SpanId
Time spent of each sub-system will be available directly in the event itself
In sub-systems, we can add multiple spans
Cons:
More efforts required compared to Solution1.
Multiple telemetry events will be logged for the same workflow(like impression & trace)
...
Integrate with external distributed tracing tools like Zipkin, Jaeger etc..
JAEGER:
Architecture diagram:
...
Integration with spring application: Video- https://www.youtube.com/watch?v=hpnLUFRY4_Y
Integration with NodeJs application: https://blog.risingstack.com/distributed-tracing-opentracing-node-js/
Pros:
The simple configuration code changes will handle the request traceability.
Jaegar UI can be used to visualize the trace events.
Cons:
Workflows can’t be traceable. Each API will be considered as one trace.
Connecting multiple applications/servers to the single jaeger instance to trace the workflow of the API has to explore.
Reference links:
Opentracing specifications:
https://github.com/opentracing/specification/blob/master/specification.md
Span: Opentracing definition
Open tracing Javascript implementation sample
https://github.com/opentracing/opentracing-javascriptBest practices:
...
Jaeger Client node: https://github.com/jaegertracing/jaeger-client-node
...
Integration with spring application: Video- https://www.youtube.com/watch?v=hpnLUFRY4_Y
...
Related articles
Trace ability of request across subsystems
...