{% extends "base.html" %} {% block title %}TraceGarden — {{ req.method }} {{ req.path }}{% endblock %} {% block content %}
← Requests
{{ req.method }}

{{ req.path }}

{{ req.status_code }} {{ "%.1f" | format(req.duration_ms) }}ms ↓ Export JSON
Trace ID{{ req.trace_id }} Started{{ req.started_at.strftime("%Y-%m-%d %H:%M:%S UTC") }} DB queries{{ req.db_query_count }} HTTP calls{{ req.http_call_count }} Tasks{{ req.task_count }}
{% if n_plus_one_warnings %}
⚠ N+1 Detected {% for w in n_plus_one_warnings %}
Query executed {{ w.count }}x: {{ w.fingerprint }}
{% endfor %}
{% endif %}
{% set total_ms = req.duration_ms if req.duration_ms > 0 else 1 %}
SERVER {{ req.method }} {{ req.path }}
{{ "%.1f"|format(req.duration_ms) }}ms
{% for q in req.db_queries %} {% set q_start_ms = (q.started_at - req.started_at).total_seconds() * 1000 if q.started_at >= req.started_at else 0 %} {% set q_left = [(q_start_ms / total_ms * 100), 0] | max %} {% set q_width = [(q.duration_ms / total_ms * 100), 0.5] | max %}
DB {{ q.fingerprint[:60] }}{% if q.fingerprint | length > 60 %}…{% endif %} {% if q.is_duplicate %}×{{ q.duplicate_count }}{% endif %}
{{ "%.2f"|format(q.duration_ms) }}ms
{% endfor %} {% for h in req.http_calls %} {% set h_start_ms = (h.started_at - req.started_at).total_seconds() * 1000 if h.started_at >= req.started_at else 0 %} {% set h_left = [(h_start_ms / total_ms * 100), 0] | max %} {% set h_width = [(h.duration_ms / total_ms * 100), 0.5] | max %}
HTTP {{ h.method }} {{ h.url[:50] }}{% if h.url | length > 50 %}…{% endif %}
{{ "%.1f"|format(h.duration_ms) }}ms
{% endfor %} {% for s in req.spans %} {% set s_start_ms = (s.started_at - req.started_at).total_seconds() * 1000 if s.started_at >= req.started_at else 0 %} {% set s_left = [(s_start_ms / total_ms * 100), 0] | max %} {% set s_width = [(s.duration_ms / total_ms * 100), 0.5] | max %}
{{ s.kind }} {{ s.name }}
{{ "%.1f"|format(s.duration_ms) }}ms
{% endfor %} {% if not req.db_queries and not req.http_calls and not req.spans %}

No additional spans captured. Instrument your app or enable OTel to see more detail.

{% endif %}
{% endblock %}