Skip to main content

Automatische Triage von Sentry-Fehlern

Verbinde Sentry-Webhooks mit der Devin API, um jeden neuen Produktionsfehler automatisch zu triagieren.
AuthorCognition
CategoryIncident Response
FeaturesAPI, MCP
1

Sentry MCP aktivieren

Devin benötigt Zugriff auf dein Sentry-Konto, damit es während der Triage Stacktraces, Breadcrumbs und Metadaten zu Ereignissen abrufen kann.
  1. Gehe zu Settings > MCP Marketplace und suche nach Sentry
  2. Klicke auf Enable und schließe den OAuth-Flow mit dem Sentry-Konto ab, das Zugriff auf deine Projekte hat
  3. Teste die Verbindung – starte eine Sitzung und bitte Devin, die neuesten Issues in einem deiner Projekte aufzulisten
Sobald die Verbindung hergestellt ist, kann Devin jedes Sentry-Projekt abfragen, auf das dein Konto Zugriff hat, einschließlich Issue-Details, vollständiger Stacktraces, Event-Breadcrumbs, Release-Tags und mehr. Weitere Details zur Einrichtung findest du in den MCP Marketplace docs.
2

Interne Sentry-Integration erstellen

Sentry stellt Webhooks über Internal Integrations bereit. Gehe in deinem Sentry-Dashboard zu Settings > Developer Settings > Custom Integrations und klicke auf Create New Integration > Internal Integration.Konfiguriere sie:
  • Name: Devin Auto-Triage
  • Webhook URL: Ein Service, den du im nächsten Schritt bereitstellst (z. B. https://your-domain.com/sentry-webhook)
  • Alert Rule Action: Auf on schalten — dadurch wird die Integration als Aktion in Alert-Regeln verfügbar
  • Permissions: Lesezugriff auf Issue & Event und Project
Speichere die Integration und erstelle dann eine Alert-Regel. Gehe zu Alerts > Create Alert Rule > Issue Alert für dein Projekt:
  • When: A new issue is created
  • If: The issue has more than 50 events in 1 hour (passe dies an deinen Traffic an)
  • Then: Send a notification via Devin Auto-Triage
3

Richten Sie den Webhook für die Devin API ein

Erstellen Sie einen kleinen Handler, der das Alert-Payload von Sentry empfängt und eine Devin-Sitzung startet. Erstellen Sie einen Servicebenutzer in Settings > Service Users mit der Berechtigung ManageOrgSessions und speichern Sie dessen Token als DEVIN_API_KEY in der Umgebung Ihres Handlers. Setzen Sie DEVIN_ORG_ID auf Ihre Organisations-ID — diese erhalten Sie, indem Sie mit Ihrem Token GET https://api.devin.ai/v3/enterprise/organizations aufrufen.
const express = require('express');
const app = express();
app.use(express.json());

app.post('/sentry-webhook', async (req, res) => {
  const event = req.body.data?.event;
  if (!event) return res.sendStatus(200);

  const orgId = process.env.DEVIN_ORG_ID;
  const response = await fetch(
    `https://api.devin.ai/v3/organizations/${orgId}/sessions`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.DEVIN_API_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      prompt: [
        `A Sentry alert fired for a new issue: "${event.title}"`,
        `Culprit: ${event.culprit}`,
        `Sentry URL: ${event.web_url}`,
        ``,
        `Use the Sentry MCP to pull the full stack trace and breadcrumbs.`,
        `Identify the root cause, fix the issue, and open a PR with a`,
        `regression test.`,
      ].join('\n'),
      tags: ['sentry-auto-triage', `project:${event.project}`],
    }),
  });

  const { session_id } = await response.json();
  console.log(`Started Devin session ${session_id} for: ${event.title}`);
  res.sendStatus(200);
});

app.listen(3000);
Deployen Sie dies überall dort, wo HTTPS-Traffic empfangen werden kann — etwa als Cloudflare Worker, AWS Lambda-Funktion oder auf einem kleinen VPS. Konfigurieren Sie die Webhook-URL Ihrer internen Sentry-Integration so, dass sie darauf zeigt.Der obige Code versieht jede Session mit sentry-auto-triage und dem Sentry-Projektnamen. So können Sie diese Sessions im Devin-Dashboard filtern und über die API abrufen, indem Sie den Query-Parameter tags verwenden — hilfreich, um nachzuverfolgen, wie viele Fehler Devin pro Projekt triagiert.Um zu überprüfen, ob die Pipeline funktioniert, lösen Sie einen Test-Alert in Sentry aus (oder senken Sie vorübergehend Ihren Schwellenwert) und prüfen Sie dann app.devin.ai auf eine neue Session mit dem Tag sentry-auto-triage.
4

Wie Devin mit jedem Alert umgeht

Wenn ein neuer Fehler deinen Schwellenwert überschreitet und der Webhook ausgelöst wird, startet Devin eine Sitzung und arbeitet das Problem durch:
  1. Fragt Sentry über MCP ab — ruft den vollständigen Stacktrace, Breadcrumbs (Benutzeraktionen, die zum Absturz geführt haben), betroffene Browser-/OS-/Release-Tags und die Ereignishäufigkeit ab
  2. Verfolgt die Ursache — liest die Quelldatei an der exakten Zeile aus dem Stacktrace und folgt dem Datenfluss, um zu verstehen, warum der Wert undefined oder null ist
  3. Schreibt einen zielgerichteten Fix — implementiert Fehlerbehandlung (optionale Verkettung, Standardwerte, Eingabevalidierung), die zu den bestehenden Mustern deiner Codebasis passt
  4. Fügt einen Regressionstest hinzu — erstellt einen Testfall, der das ursprüngliche Absturzszenario reproduziert und überprüft, dass der Fix dies verhindert
  5. Öffnet eine PR — verlinkt die Sentry-Issue-URL in der PR-Beschreibung, damit Reviewer den ursprünglichen Fehlerkontext und das Ereignisaufkommen abgleichen können
Beispiel-PR-Beschreibung:
Fix: TypeError in UserProfile wenn user.profile null ist

Grundursache: Der Endpunkt /api/users/:id gibt { profile: null }
für Benutzer zurück, die das Onboarding nicht abgeschlossen haben. UserProfile.tsx:47
destrukturiert email aus user.profile ohne Null-Check.

Fix: Optionales Chaining und einen Fallback-Zustand hinzugefügt.
Test: Test für Benutzer mit null-Profil hinzugefügt — überprüft, dass die
Komponente „Profil vervollständigen" anzeigt, anstatt abzustürzen.

Sentry-Issue: FRONTEND-1892 (340 Ereignisse in der letzten Stunde)
5

Optimieren Sie die Triage mit Playbooks und Knowledge

Sobald die Pipeline läuft, mache das Auto-Triage intelligenter:Erstelle ein Triage-Playbook. Starte mit dem !triage-Template-Playbook — dupliziere es und passe es an die Fehlerbehandlungs­konventionen deines Teams an (Error Boundaries, Null-Check-Muster, Logging-Format). Übergebe dann die Playbook-ID in deinem Webhook-Handler, indem du "playbook_id": "your-playbook-id" zum Request-Body hinzufügst. Du kannst auch Advanced Devin verwenden, um aus einer Beschreibung deines Triage-Workflows ein Playbook zu generieren.Füge Knowledge zu deinen API-Verträgen und bekannten Edge Cases hinzu — z. B. „Responses von /api/users können { profile: null } zurückgeben für Benutzer, die das Onboarding noch nicht abgeschlossen haben. Schütze dich immer dagegen.“ Verwende Advanced Devin, um dir beim Erstellen von Knowledge-Einträgen aus deiner bestehenden Dokumentation zu helfen. Je mehr Kontext Devin zu deiner Domäne hat, desto präziser werden die Korrekturen.Definiere Alerts sorgfältig. Nutze die Alert-Rule-Bedingungen von Sentry, um einzuschränken, welche Fehler Devin auslösen — filtere nach Projekt, Umgebung (nur production) oder Fehleraufkommen. Ein guter Startpunkt: löse nur für Issues aus, die in der ersten Stunde 50+ Events haben, um dich auf besonders wirkungsstarke Fehler zu konzentrieren.Richte einen wöchentlichen Review-Zeitplan ein. Erstelle einen Schedule, der einmal pro Woche läuft, um die Ergebnisse deiner Auto-Triage-Sitzungen zu überprüfen und die Erkenntnisse in dein Playbook und Knowledge zurückzuführen: