{% extends "django_observatory/base.html" %}{% load observatory %} {% block title %}Alerts{% endblock %}{% block heading %}Alerts{% endblock %} {% block sub %}One alert per rule while a condition holds; re-notified only after its cooldown{% endblock %} {% block tools %}History{% endblock %} {% block content %} {% if error %}
| Status | Alert | Detail | Since | Incident | |
|---|---|---|---|---|---|
| {{ a.status }} | {{ a.title }} | {{ a.message }} | {% if a.incident_id %}#{{ a.incident_id }}{% endif %} | {% if can_manage %}{% endif %} | |
| No active alerts. | |||||
| Rule | Condition | Severity | Channels | State | |
|---|---|---|---|---|---|
| {{ r.name }} | {{ r.get_metric_display }}{% if r.custom_metric %} {{ r.custom_metric }}{% endif %} {{ r.operator }} {{ r.threshold|floatformat:"-2" }} over {{ r.window_minutes }} min | {{ r.severity }} | in-app{% for c in r.channels %}, {{ c }}{% endfor %} | {{ r.enabled|yesno:"enabled,disabled" }} | {% if can_manage %}{% endif %} |
Email uses ALERTS.EMAIL_TO with Django's email backend; webhook posts JSON to ALERTS.WEBHOOK_URL.