{% extends 'base.html' %} {% set page = 'stats' %} {% block title %}Statistics{% endblock %} {% block content %}
REDIS COUNTERS / OBSERVABILITY

Every request, in focus.

Conversion traffic, output sizes, client activity and recent requests. Metrics reflect traffic reaching this application; proxy cache hits do not execute the converter.

Open JSON API ↗
{% set error4xx = (stats.get('stats:errors_400',0)|int + stats.get('stats:errors_403',0)|int + stats.get('stats:errors_404',0)|int + stats.get('stats:errors_413',0)|int + stats.get('stats:errors_415',0)|int + stats.get('stats:errors_422',0)|int + stats.get('stats:errors_429',0)|int) %} {% set error5xx = (stats.get('stats:errors_500',0)|int + stats.get('stats:errors_502',0)|int) %}
Convert requests{{ stats.get('stats:convert_requests',0) }}Reached backend
Successful conversions{{ stats.get('stats:conversions_success',0) }}Validated responses
4xx / 5xx errors{{ error4xx + error5xx }}{{ error4xx }} client / {{ error5xx }} server
Avg. processing{{ '%.3f'|format(detailed.processing_time_avg_sec) }}sRequests served by backend
AVERAGE OUTPUT{{ '{:,.0f}'.format(detailed.content_size_avg_bytes) }} B
TOTAL OUTPUT{{ '{:,.0f}'.format(detailed.content_size_total_bytes) }} B
FASTEST REQUEST{{ '%.3f'|format(detailed.processing_time_min_sec) }} s
SLOWEST REQUEST{{ '%.3f'|format(detailed.processing_time_max_sec) }} s
01 / TRAFFIC

Recent conversion requests {{ recent|length }}

{% for row in recent %} {% else %} {% endfor %}
TimeSourceTargetClientUser agentOpen
{{ row.get('time','')|datetimeformat }} {{ row.get('source_url','') or 'Unknown' }} {{ row.get('target_ip','') }} {{ row.get('ip','') }} {{ row.get('user_agent','') }} {% if row.get('source_url') %}Open ↗{% else %}—{% endif %}
No requests recordedRecent conversion requests will appear here.
02 / LEADERBOARD

Top sources

URL
{% for url, total in url_requests.items()|sort(attribute=1,reverse=True) %} {% else %}{% endfor %}
Source addressRequests
{{ url }}{{ total }}
No sources recorded.
03 / LEADERBOARD

Target addresses

IP
{% for ip, total in target_ips.items()|sort(attribute=1,reverse=True) %} {% else %}{% endfor %}
Target IPRequests
{{ ip }}{{ total }}
No targets recorded.
04 / CLIENTS

Top client IPs

{% for ip, total in client_ips.items()|sort(attribute=1,reverse=True) %} {% else %}{% endfor %}
Client IPRequests
{{ ip }}{{ total }}
No clients recorded.
05 / CLIENTS

User agents

{% for ua, total in user_agents.items()|sort(attribute=1,reverse=True) %} {% else %}{% endfor %}
User agentRequests
{{ ua }}{{ total }}
No user agents recorded.
06 / INSPECTIONRaw JSON snapshotExpand

This is application-side activity only. Requests served from RustProxy or Varnish cache are not counted here.

{{ raw_json }}
{% endblock %}