Fase 5.1
Workflow 1

Incident Response · Alerta → LLM → Discord

El workflow más importante del proyecto. Alertmanager dispara un webhook en n8n cuando una alerta se activa. n8n extrae el contexto, le pregunta al LLM y manda el resultado a Discord. Todo en menos de 15 segundos.

01

Flujo del Workflow

Cuatro nodos. Alertmanager empuja — no hay polling ni cron. En tiempo real.

Alertmanager
Webhook
Set
LLM
Discord
1
WebhookAlertmanager Webhook

Recibe el POST de Alertmanager con el payload JSON de la alerta. Path: /webhook/alertmanager. Method: POST.

El payload incluye: status (firing/resolved), alerts (array), labels (severity, alertname), annotations (description, summary), startsAt.
2
SetExtraer datos

Extrae los campos relevantes del payload: alertname, severity, description, value, labels. Los convierte en variables accesibles para los nodos siguientes.

Usa expresiones JSON: {{ $json.alerts[0].labels.alertname }}, {{ $json.status }}. Si hay multiples alertas, itera sobre el array.
3
HTTP RequestLLM Analysis

POST a OpenCode Go API con el prompt de ingenieria. Envia los datos de la alerta formateados y solicita analisis de causa raiz y acciones.

Configuracion: Method POST, URL https://opencode.ai/zen/go/v1/chat/completions, Header Authorization: Bearer {{ $env.N8N_OPENCODE_API_KEY }}.
4
HTTP RequestDiscord Notification

POST al webhook de Discord con el analisis del LLM formateado en Markdown. Incluye los datos originales de la alerta y la respuesta del LLM.

El body usa Discord webhook format: { content: null, embeds: [{ title, description, color, fields, timestamp }] }. Color rojo para firing, verde para resolved.
02

Configuracion de Alertmanager

Para que este workflow funcione, Alertmanager debe estar configurado para enviar alertas al webhook de n8n. Esto se configuro en la Fase 4.

alertmanager/configmap.yml
receivers:
  - name: n8n-webhook
    webhook_configs:
      - url: http://n8n.aiops.svc.cluster.local:5678/webhook/alertmanager
        send_resolved: true

route:
  receiver: n8n-webhook
  group_wait: 10s
  group_interval: 30s
  repeat_interval: 4h

send_resolved: true es clave: cuando una alerta se resuelve, Alertmanager envia una segunda notificacion. El workflow detecta el status resolved y cambia el color del embed de Discord de rojo a verde. El incidente se documenta con apertura y cierre.

02

Testear el Workflow

Para probar el flujo sin esperar una alerta real, se puede disparar una alerta manualmente desde Alertmanager.

disparar alerta manual
# Disparar alerta de prueba
$kubectl exec -n aiops deploy/alertmanager -- amtool alert add \
alertname=TestIncident severity=critical \
--annotation=description="Pod crashed unexpectedly"
# Verificar que n8n recibio la alerta
# UI n8n → Executions → ver el ultimo run

Siguiente: Workflow 2 — Log Analysis

El segundo workflow consulta Loki periodicamente, analiza logs de error con LLM y genera reportes de salud del sistema.

Workflow 2