Skip to content

Traces in Tern

Inspect a served app's traces and logs in Tern: local OTLP capture, the trace list and waterfall, retention limits, and export to your own collector.

Experimental

Experimental
This feature is experimental: its commands, options and output may change between releases. Report a problem

Read offlineelide help tern-telemetry

On this page

Send a request to the server you just started with elide serve and its trace appears in the Traces tab: the request’s spans as a waterfall, each span’s attributes, and the logs written under it. The Server page runs a local OTLP receiver beside the server for this; your configured exporters keep sending to their own destinations.

TernTrace waterfall0:15The serve dashboard captures the server's OpenTelemetry spans locally: pick a request and read its trace as a waterfall.

Traces tab

The tab appears once a trace is captured. The capture line reads Live capture or Capture paused, followed by the trace, span and log counts.

PartShows
Trace listCaptured traces, newest first.
WaterfallThe selected trace’s spans, indented by depth, each with a bar for its offset and duration.
Span treeThe trace’s spans nested by parent, each with its attributes and the logs written under it.
ControlKeyEffect
Pause / ResumepStop or restart capture. The server keeps running and captured traces stay.
ErrorseShow only failed traces. Esc returns to all.
ClearcEmpty the local history.

None of these restarts the server or changes its state, and none affects your exporters.

Capture and export

SettingBehavior
Your exportersKeep exporting. The receiver is an extra destination, removed when the Server page closes.
Disabled telemetry, signal settings, samplingRespected: the receiver sees only what your configuration emits.
SignalsTraces and logs. Other signals go only to your own destinations.

The runtime adds the receiver as a destination named __local_inspector, through a private lease in ELIDE_OTEL_INSPECTOR; it is separate from OTEL_EXPORTER_OTLP_*. See Local inspection.

Limits

LimitValue
Records kept512
Record data kept4 MiB
AgeFive minutes
Request body2 MiB
FormatsOTLP/HTTP protobuf or JSON, optionally gzip-compressed

The oldest records go first when a limit is reached; the capture line counts evicted, rejected and truncated records. Spans of a static server measure request handling through building the response, not delivery to the client.

Next

That is the whole loop: tests, debugger, coverage, build, server and traces, in one terminal. When a view does not open or a command prints text where you expected a view, Troubleshooting names the cause.

See also

Was this page helpful?