Cette page présente des scénarios d'automatisation courants que vous pouvez créer avec l'automatisation des workflows. Utilisez ces exemples comme points de départ pour votre propre workflow, ou explorez la bibliothèque de modèles pour trouver des solutions prêtes à être déployées.
Réponse aux incidents et remédiation
Restauration du gateway API
Rétablissez la configuration du Gateway API à un état antérieur afin de pouvoir corriger les erreurs et les mauvaises configurations.
Ce que fait ce workflow :
- Détecte les déploiements récents liés à un problème en utilisant New Relic suivi des changements
- Envoie une notification Slack avec des boutons d'approbation (:+1: ou :-1:)
- Après approbation, un document AWS Systems Manager est créé pour automatiser la restauration.
- Rétablit la version précédente de l'intégration API Gateway avec Lambda.
- Crée un nouveau déploiement pour appliquer la restauration.
- Envoie une notification de succès ou d'échec à Slack
- Nettoie le document SSM après son achèvement
Exigences:
- Identifiants AWS avec autorisations pour API Gateway et système Manager
- Une application Slack configurée pour recevoir les notifications et les approbations
- monitoring de l'entité New Relic avec suivi des changements
Actions clés: newrelic.nerdgraph.execute, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument
Gestion des instances EC2
Automatisez le provisionnement, la mise à l'échelle et la suppression des instances EC2 pour des performances et des coûts optimaux.
Ce que fait ce workflow :
- Reçoit des alertes de forte utilisation du processeur de la part de New Relic
- Récupère les détails de l'alerte et identifie l' instanceEC2 concernée.
- Envoie notification Slack contenant les détails instance et requests l'approbation pour le redimensionnement.
- Après approbation, un document SSM est créé pour automatiser le redimensionnement instance.
- Arrête l' instance, modifie le type d'instance et la redémarre.
- Envoie des mises à jour de progression à Slack pendant le processus de redimensionnement
- Attend la fin de l'opération et envoie un statut de succès ou d'échec
- Nettoie le document SSM et envoie la confirmation finale
Exigences:
- Identifiants AWS avec autorisations pour EC2 et système Manager
- Une condition d'alerte New Relic active pour les métriques EC2
- Une application Slack configurée pour recevoir les notifications et les approbations
Actions clés: newrelic.nerdgraph.execute, newrelic.nrdb.query, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument, utils.datetime.fromEpoch, utils.uuid.generate
Restauration du déploiement
Annuler le déploiement si l'entité devient défaillante et notifier par AWS SQS ou HTTP.
Ce que fait ce workflow :
- Monitorer la gravité des alertes d'une entité pendant une durée spécifiée (30 minutes par défaut).
- Vérifie l'état de l'entité toutes les minutes
- Si l'entité passe à l'état CRITIQUE ou AVERTISSEMENT, consignez l'état d'anomalie.
- Envoie une notification de restauration via AWS SQS (si configuré) avec les détails de l'entité.
- Envoie une notification de restauration via webhook HTTP (si configuré).
- Si l'entité reste saine pendant toute la durée, consigner le succès
- monitoring s'interrompt si l'entité est introuvable.
Exigences:
- Entité New Relic avec monitoringde la gravité des alertes
- (Facultatif) File d'attente AWS SQS et rôle pour recevoir les notifications de restauration
- (Facultatif) Point de terminaison HTTP pour recevoir notificationde restauration
Actions clés: newrelic.nerdgraph.execute, newrelic.ingest.sendLogs, aws.execute.api (sqs.send_message), http.post
traitement des données et reporting
Envoyer un rapport à Slack
Envoyer le résultat d'une requête NRQL sous forme de fichier CSV sur Slack.
Ce que fait ce workflow :
- Exécute une requête NRQL sur le(s) compte(s) New Relic spécifié(s).
- Génère un fichier CSV à partir des résultats de la requête
- Publie le fichier CSV sur un canal Slack spécifié avec un message
Exigences:
- Une authentification New Relic et une requête NRQL fonctionnelle
- Une application Slack configurée avec un jeton et un canal cible
Actions clés: newrelic.nrdb.query, utils.transform.toCSV, slack.chat.postMessage
Analyse JSON
Analyse l'API d'état public JSON (HTTP) de New Relic et enregistre éventuellement les composants opérationnels et non opérationnels.
Ce que fait ce workflow :
- Récupère des données JSON à partir de l'API d'état de New Relic
- Extrait et catégorise les composants selon leur état opérationnel
- Enregistrement conditionnel des composants opérationnels (si activée)
- Enregistrement conditionnel des composants non opérationnels (si activée)
- Gère les erreurs HTTP et consigne les messages d'erreur.
Exigences:
- Accès à l'API d'état de New Relic (summary.json)
- Autorisations pour envoyer des logs via newrelic.ingest.sendLogs
Actions clés: http.get, newrelic.ingest.sendLogs
Modèle de workflow disponible
Les modèles énumérés ci-dessus sont disponibles directement dans l'interface utilisateur d'automatisation des workflows de New Relic. Pour y accéder :
- Accédez à one.newrelic.com > All Capabilities > Workflow Automation
- Cliquez sur Create workflow
- Sélectionnez Use a template
- Parcourez la bibliothèque de modèles et choisissez un workflow qui correspond à votre cas d'utilisation.
Chaque modèle comprend :
- Étapes et logique workflow préconfigurées
- Exemple de paramètres d'entrée
- Identifiants et intégration requis
- Documentation des résultats attendus
Vous pouvez utiliser les modèles tels quels ou les personnaliser pour les adapter à vos besoins spécifiques.
Transmission de données entre les étapes
Tous les workflows peuvent faire référence aux résultats des étapes précédentes en utilisant la syntaxe de modèle. Cela vous permet d'enchaîner des actions et de construire une logique d'automatisation complexe.
Transmission de données de base
steps: - name: getAlert action: newrelic.nerdgraph.execute inputs: query: | { actor { account(id: 123456) { alerts { violation(id: 789) { condition entity { name guid } } } } } }
- name: sendToSlack action: slack.chat.postMessage inputs: channel: "#incidents" text: "Alert: ${{ .steps.getAlert.outputs.data.actor.account.alerts.violation.condition }}"Utilisation des données dans les boucles
steps: - name: listInstances type: action action: aws.ec2.describeInstances version: 1 inputs: filters: - name: "tag:Environment" values: ["production"]
- name: checkEachInstance type: loop for: in: "${{ .steps.listInstances.outputs.reservations }}" steps: - name: getInstanceMetrics type: action action: newrelic.nerdgraph.execute version: 1 inputs: query: "SELECT average(cpuPercent) FROM SystemSample WHERE instanceId = '${{ .steps.checkEachInstance.loop.element.instanceId }}'"Logique conditionnelle avec données
steps: - name: checkCPU type: action action: newrelic.nerdgraph.execute version: 1 # ... query configuration
- name: decideAction type: switch switch: - condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 90 }}" next: resizeInstance - condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 70 }}" next: sendWarning next: normalOperation
- name: resizeInstance type: action action: aws.ec2.modifyInstanceAttribute version: 1 # ... resize configuration
- name: sendWarning type: action action: slack.chat.postMessage version: 1 # ... warning message
- name: normalOperation type: action action: newrelic.ingest.sendLogs version: 1 # ... log normal statusProchaines étapes
- Créez votre propre workflow - Guide étape par étape pour la création d'un workflow
- Catalogue des actions - Parcourir toutes les actions disponibles
- Utiliser un modèle - déployer un workflow préconfiguré
- Configurer les informations d'identification AWS - Configurer l'authentification AWS