{% extends "base.html" %} {% set nav = 'summary' %} {% block title %}Summary · Profiler{% endblock %} {% block content %}

Summary by route

Every recorded request grouped by method and route, heaviest total time first. Parameterised routes are grouped by their pattern, so /users/1 and /users/2 are one row. Use this to find which endpoint is costing you, then click through to its requests. Percentiles rather than the average, which a single outlier ruins and which tells you nothing about what most callers actually experienced.

{% for row in rows %} {% else %} {% endfor %}
Method Route Calls p50 p95 p99 Max Total Avg queries Duplicates SQL errors
{{ row.method }} {{ row.path }} {{ row.count }} {{ "%.1f"|format(row.p50_ms) }} ms {{ "%.1f"|format(row.p95_ms) }} ms {{ "%.1f"|format(row.p99_ms) }} ms {{ "%.1f"|format(row.max_ms) }} ms {{ "%.1f"|format(row.total_ms) }} ms {{ "%.1f"|format(row.avg_queries) }} {% if row.total_duplicates %} {{ row.total_duplicates }} {% else %}0{% endif %} {% if row.total_errors %} {{ row.total_errors }} {% else %}0{% endif %}
Nothing recorded yet.
{% endblock %}