{#- Telemetry components, ported from the Dragon resources/*.dr helpers. Import WITH CONTEXT (they use `h`, the view helpers): {% import 'ui/telemetry/_t.html' as t with context %} JS strings: values interpolated into onclick handlers go through js() (JSON, every quote and angle bracket \u-escaped, then HTML-escaped for the attribute) or h.enc() (percent encoding), never raw, so a hostile service or metric name cannot break out. -#} {% import 'ui/kit.html' as kit %} {% macro js(value) %}{{ value|tojson|forceescape }}{% endmacro %} {% macro css() %}{% endmacro %} {% macro check_svg() %}{% endmacro %} {#- The time range control. `params` are the other query parameters to carry along. -#} {% macro rng(target, cur, params={}) %}
No traces in the live index
The explorer lists the root spans retained in this window. Errors, slow spans and traces carrying an amebo event are always retained; a specific trace stays readable by id.
| trace | root span | {% if show_service %}service | {% endif %}route | spans | errors | duration | when |
|---|---|---|---|---|---|---|---|
| {{ r.trace_id[:16] }} | {{ r.name }} | {%- if show_service %}{{ r.service }} | {% endif %}{{ r.route }} | {{ r.spans }} | {{ trace_err(r.errors) }} | {{ dbar(r.duration_us, mx, r.error) }} | {{ r.ts|ago }} |
No retained spans for this trace
Traces are sampled: errors and slow spans are always kept, the rest at the configured sample rate.
No log line carries this trace id. Emit logs through an OpenTelemetry SDK inside an active span, or send `trace_id` on POST /v1/logs, and they appear here automatically.
{{ message }}
{% if hint %}{{ hint }}
{% endif %}| {{ k }} | {{ m[k] }} |