---
title: "Sentry"
description: "Sentry-Issue-Alarme über den Webhook einer internen Integration an Uptimeify Incident Management senden, abgebildet aus Level, Meldung und Umgebung des Events."
---

Uptimeify bildet mit dem Sentry-Preset die Issue-Alert-Webhook-Payload von Sentry direkt ab: Event-Meldung/Culprit, Level, Aktion und Server/Umgebung sind bereits vorab gemappt.

## 1. Alert Source in Uptimeify anlegen

Gehe zu **Incident Management → Alert Sources → Neu**, wähle das **Sentry**-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. Interne Integration in Sentry anlegen

Sentry sendet Issue-Alert-Webhooks über eine **interne Integration**, nicht über ein einfaches Webhook-URL-Feld:

1. Gehe in Sentry zu **Settings → Developer Settings → New Internal Integration**.
2. Vergib einen Namen (z. B. `Uptimeify`).
3. Aktiviere den Schalter **Alert Rule Action** und setze unter **Webhooks** die **Webhook URL** auf die in Schritt 1 kopierte Ingest-URL.
4. Speichern. Dadurch entsteht eine Alert-Rule-Action, die du an beliebige Alert-Regeln der Organisation anhängen kannst.

## 3. An eine Alert-Regel anhängen

1. Gehe zu **Alerts → Rules** und lege eine neue Regel an (oder bearbeite eine bestehende) für das/die Projekt(e), dessen Alarme weitergeleitet werden sollen.
2. Füge unter **Then perform these actions** die Option **Send a notification via an integration** hinzu und wähle die in Schritt 2 erstellte interne Integration aus.
3. Speichere die Regel. Sentry ruft den Webhook jetzt auf, sobald die Bedingungen der Regel zutreffen, sowohl bei neu ausgelösten Issues als auch, wenn die Regel eine Resolve-Bedingung enthält, bei Auflösungen.

## Standard-Feld-Mapping

| Sentry-Feld | Normalisiertes Feld |
|---|---|
| `data.event.message` (Fallback auf `data.event.culprit`) | Titel |
| `data.event.level` | Schweregrad (über die Zuordnung unten) |
| `action` (oberste Ebene) | Status: `resolved` löst den Alarm auf, alles andere (`triggered`, `created`, `ignored`, `assigned`, …) hält ihn offen |
| `data.event.server_name` (Fallback auf `data.event.environment`) | Host |
| `data.event.issue_id` | Dedup-Key: gruppiert alle Benachrichtigungen für dasselbe Sentry-Issue |

### Schweregrad-Zuordnung

| Sentry `level` | Uptimeify-Schweregrad |
|---|---|
| `fatal` | `sev1` |
| `error` | `sev2` |
| `warning` | `sev3` |
| `info` | `sev4` |
| `debug` | `sev4` |

## Beispiel-Payload

So sieht die Payload aus, die das Sentry-Preset von Uptimeify erwartet:

```json
{
  "action": "triggered",
  "data": {
    "event": {
      "event_id": "fe208ee2e2e74ae08b3d4b7cdb9b4e3d",
      "issue_id": "123456789",
      "level": "error",
      "culprit": "raven.scripts.runner in main",
      "message": "This is an example python exception",
      "platform": "python",
      "environment": "production",
      "server_name": "web-01.prod.example.com",
      "web_url": "https://sentry.io/organizations/example/issues/123456789/",
      "issue_url": "https://sentry.io/api/0/issues/123456789/"
    }
  },
  "actor": { "type": "application", "id": "sentry", "name": "Sentry" }
}
```

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 eine echte Alert-Regel verbindest.
