• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

RCA de alerta con Autopilot y Slack

|View as Markdown (English)

Cuando se activa una alerta, active Autopilot para ejecutar un análisis de causa raíz y publicar los resultados directamente en un canal de Slack. Si Autopilot no devuelve una respuesta utilizable, el flujo de trabajo envía un aviso de error en su lugar para que el equipo sepa que debe investigar manualmente.

Antes de usar este flujo de trabajo, asegúrese de tener:

  • Un ID de problema de alerta de New Relic en formato UUID
  • Un destino de Slack configurado en New Relic — consulte Crear destinos
  • El UUID del destino y el nombre del canal de Slack objetivo

Sugerencia

Al activar este flujo de trabajo desde Alert Workflows, use {{ issueId }} como valor para la entrada issueId. Esta variable pasa automáticamente el ID del problema de la alerta desencadenante al flujo de trabajo.

Este flujo de trabajo completa los siguientes pasos:

  1. Envía un mensaje inicial de Slack para confirmar la alerta y avisar al equipo que el RCA está en marcha
  2. Ejecuta Autopilot con un símbolo de análisis de causa raíz limitado al ID del problema de la alerta
  3. Comprueba si Autopilot devolvió una respuesta utilizable
  4. Si Autopilot se ejecuta correctamente, reformatea la respuesta como bloques de Slack Block Kit y publica los resultados en Slack
  5. Si Autopilot falla, publica un mensaje de error con el ID del problema

Este flujo de trabajo usa newrelic.autopilot.run y newrelic.notification.sendSlack.

Importante

Los valores del selector expression deben escribirse en una sola línea. Los escalares de bloque YAML de varias líneas (| o |-) no se evalúan para las expresiones de selector y no producen ninguna salida de forma silenciosa.

Sugerencia

El campo finalAnswer de Autopilot puede devolverse como una cadena de texto sin formato o como un objeto codificado en JSON, según el contexto del símbolo. El selector analysisText en este flujo de trabajo maneja ambas formas automáticamente.

name: autopilotSlackRCA
description: Automatically analyze New Relic alerts with Autopilot and send cleanly formatted findings to Slack
workflowInputs:
issueId:
type: String
required: true
validations:
- errorMessage: Must be a valid New Relic issue ID in UUID format
pattern: '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'
type: regex
slackDestinationId:
type: String
required: true
validations:
- pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
errorMessage: "Invalid format. Please provide a valid UUID."
type: regex
channel:
type: String
required: true
steps:
- name: notifyAlertReceived
type: action
action: newrelic.notification.sendSlack
version: 1
inputs:
destinationId: ${{ .workflowInputs.slackDestinationId }}
channel: ${{ .workflowInputs.channel }}
text: |-
🔔 *Alert Received — Starting Root Cause Analysis*
⏳ Running Autopilot for RCA, please wait...
- name: runAutopilot
type: action
action: newrelic.autopilot.run
version: 1
inputs:
prompt: >-
Perform a root cause analysis for the following New Relic alert:
Issue ID: ${{ .workflowInputs.issueId }}
Provide your comprehensive analysis including Summary, Root Cause, and Remediation Actions.
selectors:
- name: analysisRaw
expression: .response.finalAnswer
- name: analysisText
expression: '(.response.finalAnswer | if type=="string" then fromjson else . end).card.body | map(.value) | join("\n\n")'
ignoreErrors: true
- name: checkAgentResponse
type: switch
switch:
- condition: ${{ (.steps.runAutopilot.outputs.analysisRaw // "") != "" }}
next: buildSlackBlocks
next: sendAutopilotError
- name: buildSlackBlocks
type: assign
inputs:
blocks: '${{ (.steps.runAutopilot.outputs.analysisText // "") | gsub("\\*\\*"; "*") | gsub("### "; "*") | gsub("## "; "*") as $text | ([ $text / "\n" ]) as $lines | [ { "type": "header", "text": { "type": "plain_text", "text": "✅ Autopilot RCA Complete" } }, { "type": "divider" } ] + [ $lines[][] | select(. != "") | { "type": "section", "text": { "type": "mrkdwn", "text": . } } ] }}'
next: sendRcaFindings
- name: sendRcaFindings
type: action
action: newrelic.notification.sendSlack
version: 1
inputs:
destinationId: ${{ .workflowInputs.slackDestinationId }}
channel: ${{ .workflowInputs.channel }}
blocks: ${{ .steps.buildSlackBlocks.outputs.blocks }}
next: end
- name: sendAutopilotError
type: action
action: newrelic.notification.sendSlack
version: 1
inputs:
destinationId: ${{ .workflowInputs.slackDestinationId }}
channel: ${{ .workflowInputs.channel }}
text: |-
🟥 *Autopilot RCA Failed*
Could not extract findings from Autopilot response for issue: ${{ .workflowInputs.issueId }}
Please investigate manually.
next: end

Cómo funciona

El paso runAutopilot usa dos selectores para manejar la variabilidad de forma de finalAnswer en la capa de extracción de datos:

  • analysisRaw captura el valor finalAnswer sin procesar. El paso checkAgentResponse usa esto para determinar si Autopilot devolvió algo.
  • analysisText normaliza el valor —si finalAnswer es una cadena codificada en JSON, la analiza primero y luego extrae el contenido de texto de .card.body. El paso buildSlackBlocks usa analysisText directamente, lo que mantiene simple la lógica de formato.

buildSlackBlocks convierte los marcadores de encabezado **bold** y ###/## al formato mrkdwn de Slack, divide el resultado en saltos de línea y envuelve cada línea no vacía en un bloque section de Block Kit.

Descripción general de Autopilot

Aprenda cómo Autopilot investiga alertas e incidentes

Lógica condicional

Usar declaraciones de cambio para ramificar en caso de éxito o fracaso

Enviar notificaciones de Slack

Referencia completa para la acción sendSlack

Crear destinos

Configure el destino de Slack requerido por este flujo de trabajo

Solucionar problemas de automatización de flujo de trabajo

Soluciones para problemas comunes de integración de Autopilot y Slack

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.