feat(monitors): a monitor's page reads as a page — response time over 24h, labelled actions, how long, not "ago"; the add form says what each type checks (#5214)
CI / lint (push) Successful in 3s
CI / integration (push) Successful in 1m3s
CI / unit (push) Successful in 1m22s
CI / publish (push) Successful in 1m22s

Monitor page: a response-time chart for the last day with failed checks
marked; Edit / Pause / Delete as labelled buttons; the state tile says
"for 29m" instead of "for at least 29m 25s ago"; the check strip fills
its card; no failures is one line, not an empty box; Settings names the
type, target and the actual global interval, with readable field names.

Add monitor: a line under the fields says what the selected type checks
and when it counts as up; Name says it defaults to the target.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-07 15:57:09 -04:00
co-authored by Claude Opus 5.5
parent a7b280aed9
commit c6fc02def5
7 changed files with 162 additions and 21 deletions
+10
View File
@@ -2,6 +2,16 @@
script (mtoggle) shows only the ones relevant to the selected type. #}
{% macro type_fields(config={}) %}
{# What each type checks, shown under the row for the selected type. #}
<p class="field-hint mfield" data-types="icmp" style="grid-column:1/-1;margin:0;">
<strong>Ping</strong> sends an ICMP echo to the target, a hostname or IP. Up when it answers; the round trip is the latency.</p>
<p class="field-hint mfield" data-types="tcp" style="grid-column:1/-1;margin:0;">
<strong>TCP</strong> opens a connection to the target on the port below (22 for SSH, 443 for HTTPS, …). Up when the port accepts; the connect time is the latency. Nothing is sent.</p>
<p class="field-hint mfield" data-types="http" style="grid-column:1/-1;margin:0;">
<strong>HTTP</strong> requests the target URL (http:// or https://). Up when the status matches, and the page contains the text below if you set one. For https, the certificate's expiry is tracked too.</p>
<p class="field-hint mfield" data-types="dns" style="grid-column:1/-1;margin:0;">
<strong>DNS</strong> looks the target name up (google.com, nas.lan, …) through the resolver Steward's container uses. Up when it resolves, and to the expected IP if you set one. No response time is recorded.</p>
{# tcp #}
<div class="mfield" data-types="tcp">
<label class="field-label">Port</label>