Prometheus Alertmanager
Prometheus-Alertmanager-Benachrichtigungen über einen Webhook-Receiver an Uptimeify Incident Management senden, abgebildet aus commonLabels und dem ersten Alarm.
Uptimeify bildet mit dem Alertmanager-Preset die webhook_config-Benachrichtigungs-Payload des Alertmanagers direkt ab: Zusammenfassung/Alarmname, Schweregrad-Label, Status und Instanz sind bereits vorab gemappt.
1. Alert Source in Uptimeify anlegen
Gehe zu Incident Management → Alert Sources → Neu, wähle das Prometheus Alertmanager-Preset, vergib einen Namen und lege die Source an. Kopiere auf dem Erfolgsbildschirm die Ingest-URL (https://deine-domain/api/im/ingest/<token>). Sie wird nur einmal angezeigt und danach nie wieder im Klartext eingeblendet. Solltest du sie verlieren, rotiere den Token im Tab Einstellungen der Source.
2. Webhook-Receiver im Alertmanager anlegen
Füge deiner alertmanager.yml einen Receiver hinzu, der auf die Ingest-URL zeigt:
receivers:
- name: uptimeify
webhook_configs:
- url: "https://deine-domain/api/im/ingest/<token>"
send_resolved: truesend_resolved: true ist erforderlich. Ohne diese Option ruft der Alertmanager den Webhook nie auf, wenn sich ein Alarm auflöst. Incidents in Uptimeify blieben dann dauerhaft offen, selbst nachdem das zugrunde liegende Problem behoben ist.
3. Alarme zum Receiver routen
Referenziere den Receiver über eine Route in derselben Datei (entweder als Standard-Route oder als verschachtelte Route mit Label-Matcher):
route:
receiver: uptimeify
# ...bestehender Routing-Baum, oder eine verschachtelte `routes:`-Regel statt der Default-RouteLade den Alertmanager neu oder starte ihn neu, damit die Konfigurationsänderung greift (ein vorheriges amtool check-config ist eine sinnvolle Kontrolle).
Standard-Feld-Mapping
Der Alertmanager gruppiert mehrere aktive Alarme in eine Benachrichtigung; das Preset liest Titel und Instanz aus dem ersten Alarm (alerts[0]) dieser Gruppe, den Schweregrad aus den gruppenweiten commonLabels:
| Alertmanager-Feld | Normalisiertes Feld |
|---|---|
alerts[0].annotations.summary (Fallback auf commonLabels.alertname) | Titel |
commonLabels.severity | Schweregrad (über die Zuordnung unten) |
status (oberste Ebene) | Status: resolved löst den Alarm auf, alles andere (typischerweise firing) hält ihn offen |
alerts[0].labels.instance | Host |
alerts[0].fingerprint | Dedup-Key: der Alertmanager-eigene stabile Fingerabdruck pro Alarm |
Schweregrad-Zuordnung
Das funktioniert nur, wenn deine Alarmregeln ein severity-Label setzen:
Alertmanager-Label severity | Uptimeify-Schweregrad |
|---|---|
critical | sev1 |
warning | sev3 |
info | sev4 |
Jeder andere Wert oder ein fehlendes severity-Label fällt auf den in der Source konfigurierten Standard-Schweregrad zurück. Es gibt keine sev2-Zuordnung für den Alertmanager, da dessen eigene Schweregrad-Konvention meist nur critical/warning/info kennt.
Beispiel-Payload
So sieht die Payload aus, die das Alertmanager-Preset von Uptimeify erwartet:
{
"version": "4",
"groupKey": "{}:{alertname=\"InstanceDown\"}",
"truncatedAlerts": 0,
"status": "firing",
"receiver": "uptimeify-webhook",
"groupLabels": { "alertname": "InstanceDown" },
"commonLabels": { "alertname": "InstanceDown", "severity": "critical", "job": "node" },
"commonAnnotations": { "summary": "Instance 10.0.0.5:9100 down" },
"externalURL": "http://alertmanager.example.com:9093",
"alerts": [
{
"status": "firing",
"labels": { "alertname": "InstanceDown", "severity": "critical", "instance": "10.0.0.5:9100", "job": "node" },
"annotations": { "summary": "Instance 10.0.0.5:9100 down", "description": "10.0.0.5:9100 has been down for more than 5 minutes." },
"startsAt": "2026-07-17T12:00:00.000Z",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://prometheus.example.com:9090/graph?g0.expr=up%7Bjob%3D%22node%22%7D+%3D%3D+0",
"fingerprint": "5b6e6e8f7a1c9d3e"
}
]
}Du kannst genau diese Payload über den Tab Payload Mapping im Dashboard gegen das Mapping deiner Source senden, um den Aufbau zu prüfen, bevor du den Alertmanager mit dem echten Receiver neu lädst.
Grafana Alerting
Grafana-Alerting-Benachrichtigungen über einen Webhook-Contact-Point an Uptimeify Incident Management senden, abgebildet aus dem ersten Alarm der Gruppe.
Sentry
Sentry-Issue-Alarme über den Webhook einer internen Integration an Uptimeify Incident Management senden, abgebildet aus Level, Meldung und Umgebung des Events.