{% extends "_base.html" %} {% block accent %}#0e7490{% endblock %} {% block subtitle %}Per-tier CPU/RAM under load and dependency saturation (Postgres, Redis, Celery) — observed from 15-minute resource snapshots.{% endblock %} {% block body %}
Saturation headline — the binding constraint
{{ cpu_gauge|safe }}
{{ peak_cpu }}%
Web CPU peak
{{ ram_gauge|safe }}
{{ peak_ram }}%
Web RAM peak
{% if binding %} {% if binding.over %}Over threshold{% elif binding.near %}Near threshold{% else %}Healthy{% endif %}

Binding constraint: {{ binding.name }}

{{ binding.name }} peaked at {{ binding.value }}% against a {{ binding.limit }}% ceiling — {% if binding.over %}already over the line{% elif binding.near %}within 5 points of it{% else %}with comfortable headroom{% endif %}. This is the first resource that will bind as load grows.

{% endif %}
Utilization by service tier
Mean and peak CPU/RAM per tier across the window. Thresholds: CPU warn {{ thresholds.cpu_warn }}% / crit {{ thresholds.cpu_crit }}%, RAM warn {{ thresholds.ram_warn }}% / crit {{ thresholds.ram_crit }}%.
{% for t in tiers %} {% endfor %}
TierCPU meanCPU peakRAM meanRAM peakSamples
{{ t.label }} {{ t.cpu_mean }}% {{ t.cpu_peak }}% {{ t.ram_mean }}% {{ t.ram_peak }}% {{ t.samples }}
Web tier — CPU & memory under load
CPU %
web tier over time
{{ cpu_svg|safe }}
RAM %
web tier over time
{{ ram_svg|safe }}
Dependency saturation detail
Per-tier dependency counters (mean / peak) that bind before raw CPU on a healthy web service.
{% for t in tiers %} {% for field, v in t.extra.items() %} {% endfor %} {% endfor %}
TierMetricMeanPeak
{{ t.label }}{{ field }}{{ v.mean }}{{ v.peak }}

On the connection pool

The Postgres connection-pool size is not stored in telemetry, so pool-utilisation % is reported only when an operator configures PERFORMANCE_REPORTS["DB_POOL_SIZE"]. The raw active/idle connection counts above are observed directly.
{% endblock %}