{% extends "base.html" %} {% block title %}Monitors{% endblock %} {% block content %} {% from '_limit.html' import limit, paused, locked %} {{ limit(stats.total, plan.monitors, 'monitors', 'New monitors will be refused until you upgrade or remove some.') }}
{{ plan.name }} plan · {{ stats.total }}/{{ plan.monitors }} monitors{% if ws_plan_key == 'free' %} · Upgrade{% endif %}
Add your website for uptime, an API flow with assertions, a heartbeat for your nightly backup, your domain and DNS, or a page you want to watch for changes.
{% if user.can_edit %}{% endif %}| Monitor | {% if 'status' in cols %}Status | {% endif %}{% if 'bars' in cols %}30 days | {% endif %}{% if 'interval' in cols %}Interval | {% endif %}{% if 'last_check' in cols %}Last check | {% endif %}{% if 'detail' in cols %}Detail | {% endif %}
|---|---|---|---|---|---|
| {{ m.name }} {{ paused(m.paused_by_plan, 'monitors') }} {% if 'type' in cols %}{{ modes[m.mode][0] if m.mode in modes else m.mode }}{% endif %}{% for t in m.tags or [] %}{{ t }}{% endfor %} | {% if 'status' in cols %}{% if not m.active %}paused {% elif m.is_up is none %}pending {% elif m.is_up %}up{% if m.last_latency_ms is not none and m.mode != 'domain' %} · {{ m.last_latency_ms }} ms{% endif %}{% if m.slow_count >= 3 %} slow{% endif %} {% else %}down{% endif %} {% if m.last_error and m.is_up is not false %}{% endif %} | {% endif %} {% if 'bars' in cols %}{% for b in bars.get(m.id, []) %}{% endfor %} | {% endif %}
{% if 'interval' in cols %}{% if m.mode == 'heartbeat' %}—{% else %}{{ m.interval_minutes|interval }}{% endif %} | {% endif %} {% if 'last_check' in cols %}{{ m.last_checked_at|timeago }} | {% endif %} {% if 'detail' in cols %}{% if m.mode == 'price' %}{{ m.last_value if m.last_value is not none else '—' }}{% if m.change_count %} ({{ m.change_count }} changes){% endif %} {% elif m.mode in ('text','keyword') %}{{ m.last_changed_at|timeago }}{% if m.change_count %} ({{ m.change_count }}){% endif %} {% elif m.mode == 'domain' %}{% if m.domain_expires_at %}expires {{ m.domain_expires_at|dt }}{% else %}DNS watched{% endif %} {% elif m.security_scan %}{{ m.security_scan.grade }}{% if m.ssl_expires_at %} SSL {{ m.ssl_expires_at|dt }}{% endif %} {% elif m.ssl_expires_at %}SSL {{ m.ssl_expires_at|dt }} {% elif m.mode == 'dependency' %}{{ m.last_indicator or '—' }} {% else %}—{% endif %} | {% endif %}
| Nothing matches that filter. | |||||
| When | Event | Alert | Delivery |
|---|---|---|---|
| {{ a.created_at|timeago }} | {{ a.kind }} | {% if a.monitor_id %}{{ a.title }}{% elif a.server_id %}{{ a.title }}{% else %}{{ a.title }}{% endif %} | {% for k, v in a.delivery.items() %}{{ k.split(':')[0] }} {% endfor %} |