{# ── Report header ─────────────────────────────────────── #}

{{ result.request.cluster }} / {{ result.request.service }}

{{ result.request.region }} {{ result.duration_ms }}ms
{# ── Tab nav ───────────────────────────────────────────── #}
{% if result.metrics %} {% endif %} {% if result.service_config or result.task_config %} {% endif %}
{# ── Diagnosis tab ─────────────────────────────────────── #} {% set rc = result.root_cause %} {% set conf_pct = (rc.confidence * 100) | int %} {% set clvl = "high" if rc.confidence >= 0.7 else ("med" if rc.confidence >= 0.4 else "low") %}

Root Cause

{{ conf_pct }}% confidence

{{ rc.cause }}

Suggested Fix

{{ rc.suggested_fix }}

{% if rc.evidence %}

Supporting Evidence

{% for f in rc.evidence %} {% endfor %}
SourceTypeSeverityMessage
{{ f.source }} {{ f.type.value }} {{ f.severity.value.upper() }} {{ f.message }}
{% endif %}
{# ── Metrics tab ───────────────────────────────────────── #} {% if result.metrics %} {% set m = result.metrics %}

CloudWatch Metrics last {{ m.lookback_hours }}h

{% for metric_name, avg_val, max_val in [ ("CPU Utilization", m.cpu_avg_percent, m.cpu_max_percent), ("Memory Utilization", m.memory_avg_percent, m.memory_max_percent) ] %}
{{ metric_name }}
{% for row_label, val in [("Avg", avg_val), ("Max", max_val)] %} {% set bar_cls = "bar-high" if val is not none and val > 80 else ("bar-med" if val is not none and val > 60 else "bar-low") %}
{{ row_label }}
{% if val is not none %}
{% endif %}
{% if val is not none %}{{ "%.1f"|format(val) }}%{% else %}—{% endif %}
{% endfor %}
{% endfor %}
{% endif %} {# ── Config tab ────────────────────────────────────────── #} {% if result.service_config or result.task_config %}
{% if result.service_config %} {% set sc = result.service_config %}

Service Configuration

Desired / Running / Pending {{ sc.desired_count }} / {{ sc.running_count }} / {{ sc.pending_count }}
Launch Type {{ sc.launch_type or "capacity provider" }}{% if sc.platform_version %} ({{ sc.platform_version }}){% endif %}
Min Healthy / Max {{ sc.deployment_config.minimum_healthy_percent }}% / {{ sc.deployment_config.maximum_percent }}%
Circuit Breaker {{ "Enabled" if sc.deployment_config.circuit_breaker_enabled else "Disabled" }}
{% if sc.health_check_grace_period_seconds is not none %}
Health Check Grace Period {{ sc.health_check_grace_period_seconds }}s
{% endif %}
{% endif %} {% if result.task_config %} {% set tc = result.task_config %}

Task Definition {{ tc.family }}:{{ tc.revision }}

CPU: {{ tc.cpu }} · Memory: {{ tc.memory }} MiB · Network: {{ tc.network_mode }}

{% for c in tc.containers %} {% endfor %}
ContainerImageCPUMemoryLog Group
{{ c.name }} {{ c.image.split("/")[-1] }} {{ c.cpu }} {{ c.memory or c.memory_reservation or "—" }} {{ c.log_group or "—" }}
{% endif %}
{% endif %} {# ── Live Logs tab ─────────────────────────────────────── #}

Live Log Stream

Not started