Practice the vocabulary of distributed tracing: spans, traces, context propagation, and reading trace waterfalls in Jaeger, Zipkin, or Tempo.
0 / 13 completed
1 / 13
What is a 'trace' in distributed tracing?
A trace represents one request's end-to-end journey. If a user request hits Service A → Service B → Database → Cache → Service C, the trace captures all of these steps with their timing, so you can identify where latency occurs.
2 / 13
What is a 'span' in the context of distributed tracing?
Spans are the building blocks of traces. A trace is a tree of spans: the root span (initial service call) plus child spans (downstream calls). Each span includes name, timing, status, and attributes (HTTP method, DB query, etc.).
3 / 13
What is 'context propagation' in distributed tracing?
Without context propagation, each service's spans are isolated — you cannot link them into a trace. Tracing libraries automatically inject trace context into HTTP headers (W3C TraceContext standard: traceparent, tracestate) and extract it on the receiving end.
4 / 13
In a trace waterfall view, what does a span appearing under another span indicate?
The trace waterfall (or flame graph) shows parent-child relationships. A child span under a parent means the parent initiated that work. The horizontal width shows duration. A very wide child span indicates where latency is being spent.
5 / 13
What does 'sampling' mean in distributed tracing?
100% trace capture is expensive — high-traffic services generate millions of traces. Head-based sampling decides at trace start (e.g., record 1% randomly); tail-based sampling captures all traces that have errors or high latency, regardless of sampling rate.
6 / 13
What does 'critical path' mean when analyzing a distributed trace?
In a trace, some spans run in parallel (do not add to total time) and some are sequential (critical path). Optimizing a non-critical parallel span has no effect on total latency. Identifying and optimizing the critical path is the key to reducing end-to-end response time.
7 / 13
What is an 'exemplar' in the context of metrics and tracing?
Exemplars bridge the gap between metrics and traces. When you see a P99 latency spike in Grafana, an exemplar lets you click through to see the actual slow trace — dramatically reducing the time to diagnose latency regressions.
8 / 13
How would you describe a 'fan-out' pattern in a distributed trace to a colleague?
Fan-out is when one service calls N downstream services in parallel (e.g., aggregating data from 5 microservices). The trace shows this as sibling spans. The total duration is max(child durations), not their sum — parallel calls are efficient until one is slow.
9 / 13
Sarah from the performance team just commented on your PR describing the new microservice. She asks: 'I'm seeing a huge spike in latency when calling the OrderService. Can you add some distributed tracing information to this request so we can understand where the bottleneck is?' What should you include in your PR description to best address Sarah's concern?
The goal here is practical communication. Sarah needs to easily correlate events across services. Adding a trace ID to headers facilitates this correlation – that's what context propagation does. A detailed breakdown or complex graph isn't immediately useful for identifying the root cause; they are more suited for deeper investigation after initial correlation.
10 / 13
Mark in the Slack channel mentions that his new feature is causing a lot of 'noise' in the distributed traces. He suggests using sampling to reduce the volume. What does 'sampling' primarily achieve in the context of distributed tracing?
'Sampling' is about intelligent data reduction. It doesn't eliminate all trace data; instead, it chooses a representative sample of traces for analysis. This significantly reduces the storage and processing costs while still providing insights into typical behavior. The other options describe different tracing techniques or features.
11 / 13
You're debugging an issue with slow API calls to the PaymentService. Examining a trace waterfall shows multiple spans originating from your application, but they all eventually converge on a single span labeled 'DatabaseQuery'. What does this likely indicate?
The 'DatabaseQuery' span appearing at a critical point in the trace suggests that the bottleneck is within the PaymentService itself – specifically, the database query. This indicates an inefficient or slow query that's propagating through all subsequent spans as it's the final step in the request flow. It doesn't necessarily mean the database *itself* is overloaded.
12 / 13
During a standup meeting, your team lead asks: 'How can we use distributed tracing to identify potential performance issues in our new recommendation engine?' Which of the following approaches would be MOST effective?
While identifying critical paths is useful, a truly effective approach is to focus on spans *within* the recommendation engine. This allows you to pinpoint exactly where latency or errors are occurring – it's far more targeted than examining the entire trace waterfall. Analyzing by user segment helps identify issues specific to certain demographics.
13 / 13
You're investigating a complex distributed trace involving several microservices and notices that many spans have overlapping execution times. This pattern is referred to as 'fan-out'. What does this typically signify?
A 'fan-out' pattern in a distributed trace indicates that multiple services are executing concurrently or waiting on each other, leading to delays. This often points to synchronization issues (locking, queues) or contention for shared resources between the microservices involved. It's a strong signal of a potential bottleneck.
What will I practise in "Distributed Tracing Language (English)"?
Practice the vocabulary of distributed tracing: spans, traces, context propagation, and reading trace waterfalls in Jaeger, Zipkin, or Tempo.
How many exercises are in this module?
This module has 13 multiple-choice exercises, each with instant feedback and a full explanation of the correct answer.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to use with no account, sign-up, or paywall.
Do I need to create an account to do these exercises?
No account is required. Just click an option to answer — your score for this session is tracked automatically in the progress bar above.
What happens if I choose the wrong answer?
You'll immediately see which answer was correct, plus a full explanation covering the vocabulary and reasoning behind it — mistakes are where most of the learning happens.
Can I retry the exercises if I want a higher score?
Yes — use the "Try again" button on the results screen to reset and go through all the questions again.
Is my progress saved if I close the page?
No. Progress is tracked only for your current visit; reloading or leaving the page resets the counter. This keeps the exercise simple and account-free.
Where can I find more Log Reading exercises?
Browse the full Log Reading hub for related drills, or check the "Next up" link below to continue with a connected topic.
How is this different from reading an article on the same topic?
Articles explain vocabulary and concepts in prose; this exercise tests and reinforces that vocabulary through active recall with immediate feedback — the two work best together.
Who writes these exercises?
Every exercise is written by the CoderSlingo team, drawing on real workplace English used in IT roles, then reviewed for accuracy and clarity.