OBSERVABILITY · TRACE WATERFALL INSPECTOR

Deep trace inspection: critical path versus span totals

Inspect actual span IDs, parent relationships, sampling decisions and a deterministic execution schedule.

Modeled milliseconds · slowed inspection

Your experiment

Increase fan-out and compare parallel with sequential execution. Identify the last-ending tool and explain why inclusive parent/child durations cannot be added to estimate latency.

Click any waterfall row or use the span selector. A gold outline marks your selection; details include the exact parent ID, timestamps, status and export decision.

The one-minute inspection is a slowed visualization of the modeled millisecond timeline, not a measured request. Inclusive parent and child durations overlap.

Selected span

Offline schedule and trace-context exercise; no agent, network request or OpenTelemetry exporter runs. Header validation deliberately supports version 00 only and is not a complete forward-compatible W3C parser. IDs are deterministic teaching fixtures, not production ID generation. Later tool durations increase by 25% of the first tool duration; database work occupies 20–80% of each tool span. A dependency failure marks its ancestors as failed in this application model. Sampling is a local policy, not an authorization boundary. Newly rooted remote traces default to sampled when context is not forwarded. The canvas shows modeled work even when telemetry is not exported, exposing the blind spot. No clock skew, spans lost in transport, baggage, tracestate or real latency is modeled. W3C Trace Context · OpenTelemetry trace concepts.

Find the critical path instead of summing rectangles

This exercise contrasts elapsed request time with inclusive span duration. Parent spans contain child activity, and parallel tool spans overlap one another. Their sum counts some intervals multiple times. The waterfall’s horizontal extent and root end timestamp represent request duration, while the preview deliberately reports the larger inclusive sum separately. A visually large total is not evidence of an equally long user wait.

Configure the schedule and context

Incoming traceparent accepts version-zero lowercase hexadecimal fields with nonzero trace and parent IDs. Invalid input starts a new synthetic root and displays a validation message. Forward context to remote tools chooses whether tools retain the incoming trace or start separate roots. Run tools in parallel changes their schedule. Remote tools selects one through four branches. Local work before and after tools supplies both local intervals. First tool duration is the base duration; each later tool adds twenty-five percent of that base per index. Dependency fault marks either the first database or every database as failed and propagates the error through modeled ancestors.

Compare exact serial and parallel totals

At defaults, the three tools last 200, 250 and 300 milliseconds. Parallel scheduling gives 390 milliseconds of request duration: eighty local milliseconds, ten outer milliseconds and the slowest tool’s three hundred. The inclusive span sum is 1,970 milliseconds because it includes root, agent, all tools and all database children. Turn parallel execution off: request duration becomes 840 milliseconds and inclusive sum becomes 2,870 milliseconds. Increase fanout to four under parallel scheduling; the fourth tool lasts 350 milliseconds, so the request becomes 440 milliseconds rather than adding every branch duration.

Inspect recording independently of execution

Capture and export spans switches recording on or off without removing the modeled execution. Honor incoming unsampled flag applies when a valid incoming header is unsampled; respecting that decision suppresses the propagated trace. New remote roots default to sampled if context forwarding is disabled. Inspect a span selects its exact JSON record, and clicking a waterfall row makes the same selection. Play and Pause reveal the schedule across sixty inspection seconds. Next span boundary jumps to a start or end; Restart rewinds; Speed changes viewing pace; Inspection time scrubs. Parameter changes restart playback unless reduced motion is requested. The full-scenario preview and selected JSON are not limited to already completed spans; the filled bars show inspected progress.

Know what the fixture does not observe

Database work occupies twenty through eighty percent of its enclosing tool duration. IDs are deterministic teaching identifiers, not production generators. The parser intentionally covers version zero rather than all forward-compatible trace-context cases. No actual OpenTelemetry collector, exporter acknowledgement, baggage, tracestate, network span loss, clock skew or ADK agent is present. An exported-span count is a configured local recording decision, not proof that a backend accepted the record. Overlapping inclusive spans must not be added to claim request latency. The synthetic schedule supports reasoning about causality, visibility and aggregation; it does not measure an installed service.

Views are my own and do not represent any employer, past or present.

Search