{% extends 'paxalia/base.html' %} {% load static i18n %} {% block title %}{% trans "Uptime Monitoring" %} – Paxalia Analytics{% endblock %} {% block page_title %}{% trans "Uptime Monitoring" %}{% endblock %} {% block page_subtitle %}{% trans "Scheduled checks against URLs you configure" %}{% endblock %} {% block extra_css %} {% endblock %} {% block filter_bar %} {% include 'paxalia/includes/filter_bar.html' %} {% endblock %} {% block dashboard_content %}

{% trans "Add a Monitor" %}

{% csrf_token %}

{% trans "Checks only run once manage.py check_uptime is scheduled (cron/Celery beat, every minute is typical) — see the README." %}

{% trans "Monitors" %}

{% if monitors %} {% for row in monitors %} {% endfor %}
{% trans "Name" %} {% trans "URL" %} {% trans "Status" %} {% trans "Uptime" %} ({{ start_date }} – {{ end_date }}) {% trans "Last checked" %} {% trans "Actions" %}
{{ row.monitor.name }}{% if not row.monitor.is_active %} ({% trans "paused" %}){% endif %} {{ row.monitor.url }} {% 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 %} {{ row.latest_check.checked_at|date:"M d, H:i"|default:"—" }}
{% csrf_token %}
{% csrf_token %}
{% else %}
{% trans "No monitors configured yet." %}
{% endif %}

{% trans "Recent Incidents" %}

{% if recent_incidents %} {% for incident in recent_incidents %} {% endfor %}
{% trans "Monitor" %} {% trans "Started" %} {% trans "Resolved" %} {% trans "Duration" %} {% trans "Cause" %}
{{ incident.monitor.name }} {{ incident.started_at|date:"M d, H:i" }} {% if incident.is_ongoing %} {% trans "Ongoing" %} {% else %} {{ incident.resolved_at|date:"M d, H:i" }} {% endif %} {{ incident.duration_seconds|floatformat:0 }}s {{ incident.cause|default:"—" }}
{% else %}
{% trans "No incidents recorded." %}
{% endif %}
{% endblock %} {% block page_scripts %} {% endblock %}