OBSERVABILITY · TRACE WATERFALL INSPECTOR

Trace visualization: inspect the waterfall

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

Modeled milliseconds · slowed inspection

Your experiment

Switch parallel to sequential tools. Compare wall-clock duration with the sum of inclusive span durations, and inspect the nested database spans.

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.

Read a nested span from its exact coordinates

The waterfall is backed by explicit start and end timestamps, not arbitrary bar lengths. Selecting a row highlights its rectangle and displays its ID, trace ID, parent ID, timestamps, error state and recording decision. Learn to read a tool and its database child together: a database is nested in its parent interval, so its time is not a separate sequential extension of that tool.

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.

Check the second database by hand

Keep the default parallel configuration. Tool 2 starts at 45 milliseconds and lasts 250, ending at 295. Its database child starts twenty percent into the tool, at 95 milliseconds, and ends at eighty percent, at 245. Select Database 2 and verify a 150-millisecond duration from those timestamps. Turn parallel execution off: Tool 2 now starts after Tool 1, at 245, and Database 2 shifts to 295 through 445 without changing its own duration. Scrub backward and forward to inspect the fill progression while retaining the same selected record.

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