{% extends "django_observatory/base.html" %}{% load observatory %} {% block title %}{{ req.method }} {{ req.path }}{% endblock %}{% block heading %}{{ req.method }} {{ req.path }}{% endblock %} {% block sub %}Requests / {{ req.request_id }}{% endblock %} {% block tools %}Open trace{% endblock %} {% block content %}
Status
{{ req.status_code }}
Duration
{{ req.duration_ms|ms }}
SQL queries
{{ req.db_count }}
{{ req.db_ms|ms }}{% if req.slow_queries %} · {{ req.slow_queries }} slow{% endif %}
External calls
{{ req.ext_count }}
{{ req.ext_ms|ms }}
User
{{ req.username|default:"anonymous" }}
{{ req.ip_address }}
{% if why %}

{{ why.question }}

Inference · {{ why.confidence }} confidence
Primary suspected cause: {{ why.suspect }}
Observed evidence
{% endif %}

Latency breakdown

{% for b in breakdown %}
{{ b.label }}
{{ b.text }} · {{ b.pct|floatformat:0 }}%
{% endfor %}

Timeline

{% include "django_observatory/_waterfall.html" %}
{% if exceptions %}

Exceptions

{% for e in exceptions %}{% endfor %}
{{ e.exc_type }}{{ e.message|truncatechars:160 }} {{ e.file_name|basename }}:{{ e.line_number }} in {{ e.function }}Issue #{{ e.issue_id }}
{% endif %} {% if externals %}

External calls

{% for e in externals %}{% endfor %}
ServiceCallStatusDurationOutcome
{{ e.service }}{{ e.method }} {{ e.host }}{{ e.path }}{% if e.status_code %}{{ e.status_code }}{% else %}–{% endif %}{{ e.duration_ms|ms }} {% if e.timeout %}TIMEOUT{% elif e.error %}{{ e.exc_type|default:"ERROR" }}{% else %}OK{% endif %}
{% endif %} {% if queries %}

SQL ({{ queries|length }} captured of {{ req.db_count }})

{% for q in queries %}{% endfor %}
DurationDatabaseStatement
{{ q.duration_ms|ms }}{{ q.alias }}{{ q.sql|truncatechars:400 }} {% if q.is_slow %}SLOW{% endif %}{% if not q.success %}FAILED{% endif %} all
{% endif %} {% if logs %}

Logs

{% for l in logs %}{% endfor %}
{{ l.level }}{{ l.logger_name }}{{ l.message|truncatechars:200 }}
{% endif %} {% if security or audits %}

Security & audit

{% for s in security %}{% endfor %} {% for a in audits %}{% endfor %}
{{ s.event }}{{ s.username }}{{ s.resource }}{{ s.reason }}
AUDIT {{ a.action }}{{ a.username }}{{ a.object_type }} #{{ a.object_id }}{{ a.result }}
{% endif %}

Relationships

{{ graph|json_script:"g-req" }}

Overview

Time
Route
{{ req.route|default:"(unmatched)" }}
View
{{ req.view_module }}.{{ req.view_name }}
Trace ID
{{ req.trace_id }}
Response
{{ req.content_type|default:"–" }}{% if req.response_size != None %} · {{ req.response_size|filesizeformat }}{% endif %}
User agent
{{ req.user_agent|default:"–" }}
Referrer
{{ req.referrer|default:"–" }}
Deployment
{{ req.service }} · {{ req.environment }}{% if req.release %} · {{ req.release }}{% endif %}
{% if req.query_params %}
Query
{{ req.query_params|pretty }}
{% endif %} {% if req.metadata %}
Metadata
{{ req.metadata|pretty }}
{% endif %}

Request headers (sensitive values redacted)

{% for k, v in req.headers.items %}
{{ k }}
{{ v }}
{% empty %}
Header capture is disabled.
{% endfor %}
{% endblock %}