Prometheus

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.

GET /api/v1/metrics
# TYPE relvato_monitor_up gauge
relvato_monitor_up{site="style4street.com",monitor="Guest checkout",group="flow"} 1
relvato_monitor_up{site="style4street.com",monitor="Vulnerability scan",group="security"} 0
# TYPE relvato_uptime_response_time_seconds gauge
relvato_uptime_response_time_seconds{site="style4street.com",region="eu"} 0.183
Ein Scrape im Prometheus-Textformat – dieselbe Antwort, die Grafana und Datadogs OpenMetrics-Integration lesen.
Einrichten

In drei Schritten eingerichtet

Keine App zu installieren: Prometheus liest den Metrics-Endpunkt wie jeden anderen Exporter.

01

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.

02

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.

03

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 drinsteckt

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.

MetrikWas sie bedeutet
relvato_monitor_up1, 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_outcome1 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_secondsWann der letzte Lauf war und wie lange er dauerte, in Sekunden.
relvato_uptime_up / relvato_uptime_response_time_secondsUptime-Status und Antwortzeit, pro Probe-Region.
relvato_heartbeat_up / relvato_port_upHeartbeats und Port-Monitore.
relvato_ssl_certificate_expiry_timestamp_seconds / relvato_domain_expiry_timestamp_secondsAblaufdaten von SSL-Zertifikat und Domain.
relvato_site_ownership_provenOb das Eigentum der Website nachgewiesen ist.
relvato_runs_used / relvato_runs_limitDiesen 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 412
Grafana und Datadog

Funktioniert 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.

Alarmierung

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 →

FAQ

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.

Weiterlesen

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.