Watch & compare
Observability and tracing
Different ways to see the same idea. Play one cut at a time, then return to the guide to try it yourself.
Why we recommend Follow the tool
Follow the tool is the clearest chapter entry: a tool starts a separate trace, propagation is repaired for a new run, and the same 2.4-second operation becomes connected without becoming faster. Its large labels and distinct trace/span identifiers make the guide’s exercise easier to reproduce. The baseline is a useful follow-up on nested retry cost, while Fable shows how to find the matching downstream failure among unrelated service records.
Revised original · 26 sec
Inspect the retry cost
Inspect nested spans to distinguish overall task time, a long billing operation, and the failed attempt and retry inside it.
Read the video sequence
- 0–5.5s: A total duration of 2,400 ms leaves the slow operation unexplained.
- 5.5–13.5s: Inspection of a recorded trace progressively reveals the task span, a 200 ms retrieval, and a 2,000 ms billing operation.
- 13.5–18.4s: The billing operation contains a failed 1,200 ms first attempt, a 200 ms gap, and a successful 600 ms second attempt. The travelling chip says attempt 2: this is the first retry.
- 18.4–23s: The complete timeline holds, then the billing operation is selected for investigation. Its duration includes the failed attempt and the gap; it does not by itself prove why the remote service was slow.
- 23–26s: The scene fades to the matching black opening frame. Durations and identifiers are illustrative; the reveal is not retroactive instrumentation.
About this cut
Production: Original prototype; model not recorded.
Revision: gpt-6-astra comparative review.
Illustrative synchronous waterfall; animation progressively reveals recorded spans rather than implementing tracing retroactively.
No concrete span IDs, parent-ID fields, propagation repair, sampling or export pipeline are shown. Nested durations must not be added to the parent duration.
The 200 ms gap is scripted backoff; the trace alone would not establish its cause.
Audio analysed only; no listening or device audibility check. Original model provenance was not recorded.
Recommended · Astra · 28 sec
Follow the tool
Propagating trace context connects a tool operation to its agent task on a new run, revealing where time went without making the operation faster.
Read the video sequence
- Run A begins. The agent task and model operation share trace 7B but have distinct span IDs. Their connected bars show the model operation taking an illustrative 0.6 seconds.
- Trace context is lost at the test-tool boundary. The tool starts separate trace 9C and takes 2.4 seconds. The agent takes 3.0 seconds overall, but its trace does not connect the tool record.
- After fixing transport propagation, Run B starts with new trace 8D. The traceparent header crosses the boundary and is extracted by the tool. The tool now shares the agent trace while retaining its own span ID.
- A bracket connects the tool interval to the other spans in Run B. The model still takes 0.6 seconds and the tool 2.4 seconds; total duration remains 3.0 seconds.
- The tool and its longer interval are highlighted for investigation. Tracing improved visibility, not speed. The scene fades to black. These durations and identifiers are illustrative, not guarantees.
About this cut
Production: gpt-6-astra.
Illustrative synchronous scenario and durations; abbreviated trace/span IDs; HTTP client/server intermediary spans omitted.
New run after propagation repair; no retroactive trace reconstruction, performance improvement, correctness or authorization guarantee.
Sampling, export failures, asynchronous links, fan-out and retries are not animated.
Audio analysed for peaks and timing; no physical listening or device audibility review.
Self-reviewed by the author; no comparative recommendation or other variant inspection.
Alternative · Fable · 30 sec
Carry the trace into the tool call
A tool that calls another service must propagate the trace context (the traceparent header) or the service's spans land in a separate trace and a failed agent task cannot be followed into the dependency that failed.
Read the video sequence
- 0–8.35s: Task 7 calls charge() and receives 200 from the Billing API. The agent records invoke_agent and execute_tool under trace 4bf9; the service records POST /charge 200 under trace 91c0. Another caller adds trace a7e3. The task succeeds despite the missing trace connection.
- 8.35–17.56s: Task 8 receives a downstream 500. Its agent trace is c3a1, while the service failure is recorded under 0d12. A red dashed join appears at 13.85s, the service rows are scanned, and a question mark appears at 15.26s: none matches c3a1.
- 17.56–19.96s: The old agent trace clears. At 18.26s charge() gains + traceparent with a blue pulse, representing propagation configured for subsequent requests.
- 19.96–25.36s: New task 9 starts under trace 7e2d. A blue traceparent 7e2d chip crosses to the service around 22.01–22.56s. The API still returns 500; its new recorded span has trace 7e2d, matching the agent trace.
- 25.36–29.57s: A blue flowing dotted join routes to the matching 7e2d API row. Unrelated rows dim, the matching error row gains a blue selection outline while retaining its red failure status, and the question mark becomes a check. The linked failure holds until 28.56s, then the stage fades to the opening title card. Correlation is repaired; the API failure remains.
About this cut
Production: anthropic/claude-fable-5-1.
Revision: gpt-6-astra comparative review.
Illustrative scenario: three tasks, one tool and one service, with trace ids shortened to four hex characters; a real traceparent carries a 32-hex trace id and a 16-hex parent id, and a real backend holds many more spans.
Propagation also requires receiver extraction, instrumentation and recording/export to queryable telemetry storage; sampling or export failures can omit evidence. A common backend is convenient, not a requirement of the trace-context protocol. The header does not prevent the failure, change retries, or authorize the request.
Agent span names (invoke_agent, execute_tool) follow the OpenTelemetry GenAI semantic conventions, which are marked Development and may change.
Audio was verified by analysis only (encoded peak -1.6 dBFS, spectrogram, cue timing against the scene); it was not listened to.
Originally self-reviewed by the author; subsequently compared and corrected in reviews/comparisons/observability-and-tracing/ with original provenance preserved.
Span operation labels are illustrative, not exact exported GenAI span names; matching shortened trace IDs show membership, while concrete parent/span IDs are omitted.
These animations use sound effects rather than narration. The written guide explains the mechanism and its limits. Model names describe how a cut was made, not a quality ranking.
What the review found
- Astra 5.0–10.0s versus Fable 8.35–17.56s: both expose missing context, but Astra isolates one disconnected tool with explicit trace/span identities; Fable adds the useful complication of unrelated API traffic and requires more visual tracking.
- Astra 11.0–19.2s versus Fable 17.56–24.8s: both reset and execute a new task after propagation changes. Astra preserves 0.6s model, 2.4s tool and 3.0s total; Fable preserves the 500 error. Neither repair claims to fix the underlying performance or failure.
- Baseline 13.5–20.4s uniquely reveals the 1,200ms failed attempt, 200ms gap and 600ms successful attempt inside a 2,000ms operation. The revised 17.0s chip says attempt 2, making the first retry unambiguous; these nested intervals are not extra time to add to the parent.
- Fable 25.36–28.56s now routes the blue join to only the matching 7e2d row and dims unrelated history. The red error remains visible inside the blue selection, so successful correlation is distinguishable from successful execution.
- At 350px, Astra 16.0–22.5s has the clearest operation names and identity key; baseline 19.5s has the simplest readable waterfall; Fable 25.7–27.5s is legible but denser, with smaller operation strings and abbreviated IDs. The matching-row selection improves its ending without eliminating that reading cost.
- Baseline 20.4–23.0s, Astra 21.2–25.3s and Fable 25.36–28.56s all hold the diagnostic result before fading. Astra’s final hold is generous and slightly slow, while Fable needs its hold to read the matching failure; all three final encoded endpoints exactly match their openings.