{% 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 %}{% endif %}

Active

{% for a in active %} {% empty %}{% endfor %}
StatusAlertDetailSinceIncident
{{ a.status }}{{ a.title }}{{ a.message }} {% if a.incident_id %}#{{ a.incident_id }}{% endif %} {% if can_manage %}
{% csrf_token %}{% if a.status == 'FIRING' %}{% endif %}
{% endif %}
No active alerts.

Rules

{% for r in rules %} {% endfor %}
RuleConditionSeverityChannelsState
{{ 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 %}
{% csrf_token %}
{% endif %}
{% if can_manage %}

New rule

{% csrf_token %}

Email uses ALERTS.EMAIL_TO with Django's email backend; webhook posts JSON to ALERTS.WEBHOOK_URL.

{% endif %} {% endblock %}