PingMon in deinem Grafana
Der /metrics-Endpoint liefert deine Monitore als Prometheus-Gauges — Status, Antwortzeit, 24-h-Uptime und SSL-Restlaufzeit. Dein Prometheus scrapt, dein Grafana zeigt an. Verfügbar in Pro und Business.
1. API-Key bereitlegen
Im Dashboard unter Einstellungen → API erzeugst du deinen Konto-Key. Der /metrics-Export ist in Pro und Business enthalten — andere Tarife bekommen HTTP 402. Schnelltest direkt im Terminal:
curl -H "X-API-Key: <API-KEY>" https://pingmon.de/metrics
2. Prometheus scrapen lassen
Ein Job in deiner prometheus.yml genügt. Der Endpoint spricht das Prometheus-Exposition-Format (text/plain) und ist read-only — er kann nichts an deinem Konto ändern.
scrape_configs:
- job_name: "pingmon"
scheme: https
metrics_path: /metrics
scrape_interval: 60s
static_configs:
- targets: ["pingmon.de"]
authorization:
type: Bearer
credentials: <API-KEY>
3. Dashboard importieren
Lade unser fertiges Dashboard herunter und importiere es in Grafana: Dashboards → New → Import → JSON-Datei hochladen. Beim Import wählst du deine Prometheus-Datenquelle aus — fertig.
Die Datei landet in deinen Downloads. Öffnet dein System sie automatisch in einem Editor (macOS z. B. in Xcode): einfach schließen — in Grafana zählt nur das Hochladen der Datei.
Authentifizierung
Drei Wege, derselbe Key. Der Key gehört immer in den Header — als Query-Parameter wird er nicht akzeptiert.
| Variante | So geht's |
|---|---|
X-API-Key: <API-KEY> | Eigener Header — praktisch für curl und eigene Skripte |
Authorization: Bearer <API-KEY> | Standard für Prometheus — in der prometheus.yml als authorization-Block (siehe oben) |
HTTP Basic Auth | Username egal (z. B. api), Passwort = API-Key — in der prometheus.yml als basic_auth |
Falls dein Setup kein Bearer kann — dieselbe Stelle in der prometheus.yml, nur mit basic_auth:
basic_auth:
username: api
password: <API-KEY>
Metrik-Referenz
Alle Metriken sind Gauges. Jede Zeitreihe trägt die Labels endpoint_id, endpoint (Monitor-Name) und client (Kundenname oder leer).
| Metrik | Bedeutung |
|---|---|
pingmon_endpoint_up | 1 = letzter Check ok, 0 = fehlgeschlagen |
pingmon_response_seconds | Antwortzeit des letzten Checks in Sekunden |
pingmon_uptime_24h_ratio | Anteil erfolgreicher Checks der letzten 24 h (0–1) |
pingmon_ssl_days_remaining | Tage bis zum SSL-Zertifikatsablauf, negativ = abgelaufen — nur wenn der SSL-Check am Monitor aktiviert ist |
pingmon_cert_expiry_timestamp | Zertifikatsablauf als Unix-Timestamp in Sekunden — nur mit aktiviertem SSL-Check |
Grafana Cloud
Grafana Cloud scrapt den Endpoint direkt — über Grafana Alloy oder die „Metrics Endpoint"-Integration. Als Authentifizierung wählst du Bearer-Token und trägst deinen API-Key ein. Ein eigener Prometheus ist dann nicht nötig.
Lieber JSON statt Prometheus?
Wenn du kein Prometheus betreiben willst: Die Grafana-Infinity-Datasource kann die REST-API v1 direkt konsumieren — Live-Status, Checks und Uptime als JSON. Alles dazu steht in der API-Doku.
Keine Wunder: Pausierte und gesperrte Monitore werden nicht exportiert. Pro Konto sind 30 Scrapes pro Minute frei — übliche Intervalle von 15–60 s passen locker. Die Werte zeigen den Stand des letzten Checks, kein Streaming.