• /
  • 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)

Lorsqu'une alerte se déclenche, déclenchez Autopilot pour exécuter une analyse des causes profondes et publier les résultats directement sur un canal Slack. Si Autopilot ne renvoie aucune réponse utilisable, le workflow envoie un avis d'erreur à la place afin que l'équipe sache qu'elle doit enquêter manuellement.

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

  • Un ID de problème d'alerte New Relic au format UUID
  • Destination Slack configurée dans New Relic — voir Créer des destinations
  • L’UUID de la destination et le nom du canal Slack cible

Conseil

Lors du déclenchement de ce workflow à partir des workflows d’alerte, utilisez {{ issueId }} comme valeur pour l’entrée issueId. Cette variable transmet automatiquement l’ID de problème de l’alerte de déclenchement au workflow.

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 d'alerte
  3. Vérifie si Autopilot a renvoyé une réponse utilisable
  4. En cas de succès : reformate la réponse sous forme de blocs Slack Block Kit et publie les résultats sur Slack si Autopilot réussit.
  5. En cas d’échec : publie un message d’erreur avec l’ID du problème si Autopilot échoue.

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: agentResponse
expression: .response.finalAnswer
ignoreErrors: true
- name: checkAgentResponse
type: switch
switch:
- condition: ${{ (.steps.runAutopilot.outputs.agentResponse // "") != "" }}
next: buildSlackBlocks
next: sendAutopilotError
- name: buildSlackBlocks
type: assign
inputs:
blocks: '${{ (.steps.runAutopilot.outputs.agentResponse // "") as $r | (if ($r|type)=="string" then ($r | try fromjson catch null) else $r end) as $json | (if ($json|type)=="array" then ($json[0].text // ($json | tostring)) elif ($json|type)=="object" and ($json.card.body|type)=="array" then [ $json.card.body[] | if .type=="Text" then (.value // "") else "" end ] | join("\n\n") elif ($json|type)=="object" and ($json.text|type)=="string" then $json.text else ($r | tostring) end) | 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

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

Droits d'auteur © 2026 New Relic Inc.

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