{% extends 'paxalia/base.html' %} {% load static i18n %} {% block title %}{% trans "Availability" %} – Paxalia Dashboard{% endblock %} {% block page_title %}{% trans "Availability" %}{% endblock %} {% block page_subtitle %}{% trans "Monitor the health, response time, and confirmed incident state of your critical endpoints" %}{% endblock %} {% block extra_css %} {% endblock %} {% block filter_bar %}{% include 'paxalia/includes/filter_bar.html' %}{% endblock %} {% block dashboard_content %}
{% trans "Current monitor state is separated from historical availability so UNKNOWN observations never inflate uptime." %}
{% trans "Start with the endpoint and expected result, then tune scheduling and validation only when needed." %}
{% trans "You can inspect monitor health and incidents. Creating and changing monitors requires the Availability management permission." %}
{% trans "Current state, historical availability, response timing, and controls for each monitor." %}
| {% trans "Monitor" %} | {% trans "Target" %} | {% trans "State" %} | {% trans "Availability" %} | {% trans "Response" %} | {% trans "Last checked" %} | {% trans "Controls" %} |
|---|---|---|---|---|---|---|
|
{{ row.monitor.name }}
{{ row.monitor.get_kind_display }} · {{ row.monitor.method }}
{% if not row.monitor.is_active %}{% trans "Paused" %}{% endif %}
|
{{ row.monitor.url }}
{% trans "Expected" %} {{ row.monitor.expected_status_code }}
|
{% if row.current_status == 'up' %}{% trans "UP" %} {% elif row.current_status == 'down' %}{% trans "DOWN" %} {% else %}{% trans "UNKNOWN" %}{% endif %} |
{% if row.uptime_pct is not None %}{{ row.uptime_pct }}%{% else %}—{% endif %}
{% trans "selected window" %}
|
{% if row.latest_check and row.latest_check.response_time_ms %}{{ row.latest_check.response_time_ms }} ms{% else %}—{% endif %}
{% if row.response_stats.count %}avg {{ row.response_stats.average_ms }} · p95 {{ row.response_stats.p95_ms }}{% else %}{% trans "No timing sample" %}{% endif %}
|
{% if row.latest_check %}{{ row.latest_check.checked_at|date:"M d, H:i:s" }}{% else %}—{% endif %}
{% if row.latest_check %}{{ row.latest_check.status|upper }}{% else %}{% trans "No observations" %}{% endif %}
|
{% if can_manage_availability %}
{% trans "Edit" %} |
{% trans "Incident boundaries are based on confirmed observations; unseen outage time is never inferred." %}
| {% trans "Monitor" %} | {% trans "State" %} | {% trans "Failure" %} | {% trans "Recovery" %} | {% trans "Observed duration" %} | {% trans "Cause" %} | {% trans "Actions" %} |
|---|---|---|---|---|---|---|
| {{ incident.monitor.name }} | {% if incident.state == 'recovered' %}{% trans "RECOVERED" %}{% elif incident.state == 'acknowledged' %}{% trans "ACKNOWLEDGED" %}{% else %}{% trans "OPEN" %}{% endif %} | {{ incident.first_confirmed_failure_at|date:"M d, H:i:s"|default:"—" }}{% trans "first confirmed failure" %} |
{{ incident.first_confirmed_recovery_at|date:"M d, H:i:s"|default:"—" }}{% if incident.is_ongoing %}{% trans "Still ongoing" %}{% else %}{% trans "recovered" %}{% endif %} |
{{ incident.duration_seconds|floatformat:0 }}s | {{ incident.cause|default:"—" }} | {% if can_view_logs %}{% trans "View logs" %}{% endif %}{% if can_manage_availability and incident.is_ongoing %}{% endif %} |