• /
  • EnglishEspañolFrançaisæ—„æœŹèȘží•œê”­ì–ŽPortuguĂȘs
  • Se connecterDĂ©marrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problÚme

RCA d'alerte avec Autopilot et Slack

|View as Markdown (English)

Ce modĂšle exĂ©cute Autopilot sur une alerte New Relic et publie l’analyse de la cause racine sur un canal Slack. Si Autopilot ne renvoie aucune rĂ©ponse utilisable, le workflow envoie une notification d’erreur Ă  la place. Pour les prĂ©requis partagĂ©s et les notes de configuration, consultez les modĂšles de workflow Autopilot RCA.

Avant d'utiliser ce workflow, assurez-vous d'avoir :

  • Destination Slack configurĂ©e dans New Relic — voir CrĂ©er des destinations
  • L’UUID de la destination et le nom du canal Slack cible

Ce workflow effectue les étapes suivantes :

  1. Envoie un message Slack initial pour accuser réception de l'alerte et informer l'équipe que la RCA est en cours
  2. Exécute Autopilot avec un prompt d'analyse des causes profondes limité à l'ID du problÚme de l'alerte
  3. Vérifie si Autopilot a renvoyé une réponse utilisable
  4. Reformate la réponse sous forme de blocs Slack Block Kit et publie les résultats sur Slack (si Autopilot renvoie une réponse)
  5. Publie un message d’erreur avec l'ID du problĂšme (si Autopilot ne renvoie aucune rĂ©ponse)

Ce workflow utilise newrelic.autopilot.run et newrelic.notification.sendSlack.

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

Comment ça marche

L’étape runAutopilot utilise deux sĂ©lecteurs pour gĂ©rer la variabilitĂ© de forme de finalAnswer au niveau de la couche d’extraction de donnĂ©es :

  • analysisRaw capture la valeur brute de finalAnswer. L’étape checkAgentResponse utilise cela pour dĂ©terminer si Autopilot a renvoyĂ© quelque chose.
  • analysisText normalise la valeur — si finalAnswer est une chaĂźne encodĂ©e en JSON, il l’analyse d’abord, puis extrait le contenu textuel de .card.body. L'Ă©tape buildSlackBlocks utilise directement analysisText, sans aucune analyse supplĂ©mentaire.

buildSlackBlocks convertit les marqueurs d’en-tĂȘte **bold**, et ###/## au format mrkdwn de Slack, divise le rĂ©sultat au niveau des sauts de ligne, et enveloppe chaque ligne non vide dans un bloc Block Kit section.

ModĂšles de workflow Autopilot RCA

Prérequis communs et notes de configuration pour tous les modÚles RCA Autopilot

Vue d’ensemble d’Autopilot

DĂ©couvrez comment Autopilot enquĂȘte sur les alertes et les incidents

Logique conditionnelle

Utilisez des instructions switch pour bifurquer en cas de succÚs ou d'échec

Envoyer des notifications Slack

RĂ©fĂ©rence complĂšte pour l’action sendSlack

Créer des destinations

Configurez la destination Slack requise par ce workflow

RCA des alertes avec Autopilot et e-mail

Envoyer les résultats de la RCA par e-mail au lieu de Slack

Dépannage de l'automatisation des workflows

Solutions pour les problĂšmes courants d’intĂ©gration d’Autopilot, et de Slack

Droits d'auteur © 2026 New Relic Inc.

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