Sign in to track progress and bookmarks.
In a monolith, you have one log. In microservices, one request might touch 10 services. Without Distributed Tracing, finding the source of a slow response is like looking for a needle in 10 haystacks.
OpenTelemetry is a vendor-neutral standard for collecting Traces, Metrics, and Logs. .NET has first-class support for it. You can instrument your app once and send the data to **Jaeger**, **Zipkin**, **Honeycomb**, or **Azure Monitor** without changing your code.
By looking at the "Gantt Chart" of your trace in a tool like Jaeger, you can instantly see: 'Service A spent 500ms waiting for the Database,' or 'Service B spent 1s retrying an API call.'
Q: "How do you propagate a trace across an asynchronous message queue?"
Architect Answer: "We use **Baggage and Trace Context**. When we publish a message to RabbitMQ, MassTransit automatically adds the `traceparent` and `tracestate` to the message headers. When the consumer reads the message, it starts a new span using those headers as the 'Parent'. This allows the tracing tool to link the Producer's timeline to the Consumer's timeline even though they happened seconds or minutes apart."
Quizzes linked to this course—pass to earn certificates.
On this page
1. OpenTelemetry (The Open Standard) 2. Spans and Traces 4. Interview Mastery