Website-Monitoring mit Prometheus
Website-Monitoring mit Prometheus ist in einem Schritt erledigt: Rufe Relvatos Metrics-Endpunkt mit Prometheus ab, oder richte Grafana oder Grafana Clouds eigenes Prometheus-Scraping auf dieselbe URL, und stelle Monitor-Fehlschläge, Uptime, SSL- und Domain-Ablauf direkt neben allem dar, was du schon beobachtest.
Funktioniert in jedem Tarif, auch in Free, mit jedem Relvato-API-Schlüssel – auch mit einem Schlüssel mit Lesezugriff. Die Antwort aktualisiert sich höchstens alle 30 Sekunden, ein 60-Sekunden-Scrape-Intervall reicht also locker.
In drei Schritten eingerichtet
Keine App zu installieren: Prometheus liest den Metrics-Endpunkt wie jeden anderen Exporter.
Erstelle einen API-Schlüssel
Öffne in Relvato „API access“ und erstelle einen Schlüssel. Ein Schlüssel mit Lesezugriff reicht – der Metrics-Endpunkt liest nur.
Füge den Scrape-Job hinzu
Richte Prometheus mit dem Schlüssel als Bearer-Token auf /api/v1/metrics. Füge ?siteId= hinzu, um nur eine Website statt des ganzen Accounts abzurufen.
Stelle sie dar und alarmiere darauf
Die Reihen verhalten sich wie bei jedem anderen Exporter: baue Grafana-Panels, oder alarmiere direkt aus Prometheus und Alertmanager.
scrape_configs:
- job_name: relvato
scheme: https
metrics_path: /api/v1/metrics
# params: { siteId: ["st_1a2b3c"] } # one site instead of the whole account
scrape_interval: 60s
authorization:
type: Bearer
credentials_file: /etc/prometheus/relvato_api_key # holds rlv_your_key
static_configs:
- targets: ["app.relvato.com"]credentials_file hält den Schlüssel aus der Konfigurationsdatei heraus; nutze stattdessen credentials, um ihn direkt einzufügen. Jeder Scrape zählt als eine Anfrage gegen das Ratenlimit deines Tarifs.
Was der Metrics-Endpunkt liefert
GET /api/v1/metrics antwortet im Prometheus-Textformat (0.0.4): jede Website und jeder Monitor in deinem Account als Gauge, 30 Sekunden lang zwischengespeichert.
Jede Reihe trägt site und site_id; Monitor-Reihen ergänzen monitor, monitor_id, monitor_key und group.
| Metrik | Was sie bedeutet |
|---|---|
relvato_monitor_up | 1, wenn der letzte Lauf eines Monitors bestanden hat, 0, wenn er ein Problem gefunden hat. Keine Reihe, wenn der letzte Lauf nicht laufen konnte – siehe stattdessen monitor_last_outcome. |
relvato_monitor_last_outcome | 1 für das Ergebnis des letzten Laufs (outcome="ok", "issue" oder "not-run"), sodass du auch auf „nicht gelaufen“ alarmieren kannst. |
relvato_monitor_last_run_timestamp_seconds / _duration_seconds | Wann der letzte Lauf war und wie lange er dauerte, in Sekunden. |
relvato_uptime_up / relvato_uptime_response_time_seconds | Uptime-Status und Antwortzeit, pro Probe-Region. |
relvato_heartbeat_up / relvato_port_up | Heartbeats und Port-Monitore. |
relvato_ssl_certificate_expiry_timestamp_seconds / relvato_domain_expiry_timestamp_seconds | Ablaufdaten von SSL-Zertifikat und Domain. |
relvato_site_ownership_proven | Ob das Eigentum der Website nachgewiesen ist. |
relvato_runs_used / relvato_runs_limit | Diesen Monat genutzte Läufe gegenüber dem monatlichen Limit deines Tarifs. |
Ein Scrape sieht so aus:
# TYPE relvato_monitor_up gauge
relvato_monitor_up{site="style4street.com",site_id="st_1a2b3c",monitor="Guest checkout",monitor_id="ck_4d5e6f",monitor_key="woo-checkout",group="flow"} 1
relvato_monitor_up{site="style4street.com",site_id="st_1a2b3c",monitor="Vulnerability scan",monitor_id="ck_7a8b9c",monitor_key="vuln-scan",group="security"} 0
# TYPE relvato_monitor_last_outcome gauge
relvato_monitor_last_outcome{site="style4street.com",site_id="st_1a2b3c",monitor="Storefront",monitor_id="ck_1f2e3d",monitor_key="storefront",group="flow",outcome="not-run"} 1
# TYPE relvato_monitor_last_run_timestamp_seconds gauge
relvato_monitor_last_run_timestamp_seconds{site="style4street.com",site_id="st_1a2b3c",monitor="Guest checkout",monitor_id="ck_4d5e6f",monitor_key="woo-checkout",group="flow"} 1794214842
# TYPE relvato_uptime_response_time_seconds gauge
relvato_uptime_response_time_seconds{site="style4street.com",site_id="st_1a2b3c",region="eu"} 0.183
relvato_uptime_response_time_seconds{site="style4street.com",site_id="st_1a2b3c",region="us"} 0.412
# TYPE relvato_ssl_certificate_expiry_timestamp_seconds gauge
relvato_ssl_certificate_expiry_timestamp_seconds{site="style4street.com",site_id="st_1a2b3c"} 1799971200
# TYPE relvato_runs_used gauge
relvato_runs_used 412Funktioniert auch mit Grafana und Datadog
Füge dieselbe URL als Prometheus-Datenquelle in Grafana hinzu, oder lass Grafana Clouds eigenes Prometheus-Scraping sie direkt abrufen – keine eigene Integration zu installieren. Datadogs OpenMetrics-Integration liest dieselbe URL und denselben Authorization: Bearer-Header.
Alarmiere, wenn ein Monitor ein Problem findet
Zwei Regeln zum Start: auslösen, wenn der letzte Lauf eines Monitors ein Problem findet, und erneut auslösen, bevor ein Zertifikat abläuft.
groups:
- name: relvato
rules:
- alert: RelvatoMonitorFoundAProblem
expr: relvato_monitor_up == 0
for: 5m
annotations:
summary: "{{ $labels.monitor }} on {{ $labels.site }} found a problem"
- alert: RelvatoCertificateExpiringSoon
expr: relvato_ssl_certificate_expiry_timestamp_seconds - time() < 14 * 86400
annotations:
summary: "The certificate on {{ $labels.site }} expires in less than 14 days"Läuft bei dir kein Prometheus? Relvato kann auch direkt einen PagerDuty-Incident öffnen, ganz ohne Scraping: Website-Monitoring mit PagerDuty →
Oder das Problem direkt in einen Slack-Kanal posten: Website-Monitoring-Alarme in Slack →
Prometheus, erklärt
Welche Tarife können den Metrics-Endpunkt abrufen?
Jeder Tarif, auch Free, mit jedem Relvato-API-Schlüssel – auch mit einem Schlüssel mit Lesezugriff. Der Metrics-Endpunkt liest nur, braucht also nie einen Schlüssel mit Vollzugriff.
Wie aktuell sind die Daten?
Die Antwort wird höchstens 30 Sekunden zwischengespeichert, ein 60-Sekunden-Scrape-Intervall reicht also locker. Jeder Scrape zählt als eine Anfrage gegen das Ratenlimit deines Tarifs.
Kann ich nur eine Website abrufen?
Ja: Füge ?siteId= mit der Relvato-ID der Website zur URL hinzu, dann deckt die Antwort nur diese Website statt deines ganzen Accounts ab.
Was passiert, wenn ein Monitor nicht laufen konnte?
Dafür gibt es keine relvato_monitor_up-Reihe. relvato_monitor_last_outcome mit outcome="not-run" ist dann 1, sodass du auch darauf alarmieren kannst, dass eine Firewall Relvato blockiert hat oder die Website nicht geantwortet hat.
Funktioniert das mit Grafana Cloud oder Datadog?
Ja. Grafana Clouds eigenes Prometheus-Scraping und Datadogs OpenMetrics-Integration lesen dieselbe URL und denselben Authorization: Bearer-Header – auf keiner Seite ist etwas Relvato-Spezifisches zu installieren.
Wo finde ich die vollständige Liste der Metriken und Labels?
Der Abschnitt „Prometheus and Grafana“ in der Entwicklerreferenz listet jede Metrik, jedes Label und die Alarmregeln oben vollständig auf.
Brauche ich Prometheus, um Alarme zu bekommen?
Nein. Relvato kann Alarme auch allein verschicken, direkt an PagerDuty, Slack und andere Chat-Apps, ohne dass du Prometheus betreibst oder wartest.
Weitere Wege, mit Relvato zu arbeiten
Bring deine Monitore auf die Dashboards, die du schon beobachtest
Erstelle einen API-Schlüssel und füge den Scrape-Job hinzu – die ersten Metriken erscheinen innerhalb einer Minute.