Skip to main content

Clasificación automática de errores de Sentry

Conecta los webhooks de Sentry con la API de Devin para clasificar automáticamente cada nuevo error en producción.
AuthorCognition
CategoryRespuesta a incidentes
FeaturesAPI, MCP
1

Habilitar MCP de Sentry

Devin necesita acceso a tu cuenta de Sentry para poder extraer stack traces, breadcrumbs y metadatos de eventos durante el triaje.
  1. Ve a Settings > MCP Marketplace y busca Sentry
  2. Haz clic en Enable y completa el flujo de OAuth con la cuenta de Sentry que tenga acceso a tus proyectos
  3. Prueba la conexión: inicia una sesión y pídele a Devin que liste las incidencias recientes en uno de tus proyectos
Una vez conectado, Devin puede consultar cualquier proyecto de Sentry al que tenga acceso tu cuenta: detalles de incidencias, stack traces completos, breadcrumbs de eventos, etiquetas de release y más. Consulta la documentación de MCP Marketplace para obtener detalles de configuración.
2

Crear una integración interna en Sentry

Sentry envía webhooks mediante Internal Integrations. En tu panel de Sentry, ve a Settings > Developer Settings > Custom Integrations y haz clic en Create New Integration > Internal Integration.Configúrala:
  • Name: Devin Auto-Triage
  • Webhook URL: Un servicio que implementarás en el siguiente paso (por ejemplo, https://your-domain.com/sentry-webhook)
  • Alert Rule Action: Activa el interruptor en on — esto hace que la integración esté disponible como acción en las reglas de alerta
  • Permissions: Acceso de solo lectura a Issue & Event y Project
Guarda la integración y luego crea una regla de alerta. Ve a Alerts > Create Alert Rule > Issue Alert para tu proyecto:
  • When: Se crea un nuevo issue
  • If: El issue tiene más de 50 eventos en 1 hora (ajusta según tu tráfico)
  • Then: Envía una notificación mediante Devin Auto-Triage
3

Configura el webhook para Devin API

Crea un pequeño controlador que reciba el payload de alerta de Sentry y inicie una sesión de Devin. Crea un usuario de servicio en Settings > Service Users con el permiso ManageOrgSessions y almacena su token como DEVIN_API_KEY en el entorno de tu controlador. Configura DEVIN_ORG_ID con el ID de tu organización; puedes obtenerlo llamando a GET https://api.devin.ai/v3/enterprise/organizations con tu token.
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);
Impleméntalo en cualquier lugar que pueda recibir tráfico HTTPS: un Cloudflare Worker, AWS Lambda o un pequeño VPS. Configura la URL de webhook de tu Sentry Internal Integration para que apunte a este servicio.El código anterior etiqueta cada sesión con sentry-auto-triage y el nombre del proyecto de Sentry. Esto te permite filtrar estas sesiones en el panel de Devin y obtenerlas a través de la API usando el parámetro de consulta tags, lo que resulta útil para hacer un seguimiento de cuántos errores clasifica Devin por proyecto.Para verificar que el pipeline funciona, activa una alerta de prueba en Sentry (o reduce temporalmente tu umbral) y luego revisa app.devin.ai para encontrar una nueva sesión etiquetada como sentry-auto-triage.
4

Qué hace Devin con cada alerta

Cuando un nuevo error supera tu umbral y se activa el webhook, Devin inicia una sesión y trabaja en el problema:
  1. Consulta Sentry vía MCP — obtiene el stack trace completo, los breadcrumbs (acciones del usuario que llevan al fallo), las etiquetas de navegador/SO/release afectadas y la frecuencia del evento
  2. Localiza la causa raíz — lee el archivo fuente en la línea exacta del stack trace y sigue el flujo de datos para entender por qué el valor es undefined o null
  3. Escribe una corrección específica — implementa manejo de errores (encadenamiento opcional, valores predeterminados, validación de datos de entrada) que coincide con los patrones existentes de tu base de código
  4. Añade una prueba de regresión — crea un caso de prueba que reproduce el escenario original del fallo y verifica que la corrección lo evita
  5. Abre un PR — incluye la URL del issue de Sentry en la descripción del PR para que los revisores puedan cruzar el contexto original del error con el volumen de eventos
Descripción de PR de ejemplo:
Fix: TypeError in UserProfile when user.profile is null

Root cause: The /api/users/:id endpoint returns { profile: null }
for users who haven't completed onboarding. UserProfile.tsx:47
destructures email from user.profile without a null check.

Fix: Added optional chaining and a fallback state.
Test: Added test for users with null profile — verifies the
component renders "Complete your profile" instead of crashing.

Sentry issue: FRONTEND-1892 (340 events in the past hour)
5

Optimiza el triaje con playbooks y Knowledge

Una vez que la pipeline esté en ejecución, haz que el auto-triaje sea más inteligente:Crea un playbook de triaje. Empieza desde el playbook de plantilla !triage: duplícalo y personalízalo con las convenciones de manejo de errores de tu equipo (error boundaries, patrones de comprobación de valores nulos, formato de logging). Luego pasa el ID del playbook en tu controlador de webhook agregando "playbook_id": "your-playbook-id" al cuerpo de la solicitud. También puedes usar Advanced Devin para generar un playbook a partir de una descripción de tu flujo de trabajo de triaje.Agrega Knowledge sobre tus contratos de API y casos límite conocidos; por ejemplo: “Las respuestas de /api/users pueden devolver { profile: null } para usuarios que no hayan completado el onboarding. Asegúrate siempre de manejar este caso.” Usa Advanced Devin para ayudarte a redactar entradas de Knowledge a partir de tu documentación existente. Cuanto más contexto tenga Devin sobre tu dominio, más precisas serán sus correcciones.Delimita bien el alcance de las alertas. Usa las condiciones de reglas de alerta de Sentry para limitar qué errores activan a Devin: filtra por proyecto, entorno (solo production) o volumen de errores. Un buen punto de partida: que solo se disparen para incidencias con más de 50 eventos en la primera hora, para centrarte en los errores de mayor impacto.Configura un calendario de revisión semanal. Crea un schedule que se ejecute una vez por semana para revisar los resultados de tus sesiones de auto-triaje y volcar los aprendizajes en tu playbook y en Knowledge: