Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Une fois que vous avez créé un workflow, vous pouvez le déclencher de trois manières : à partir d'alertes, manuellement à la demande ou selon un calendrier.
Choisissez votre méthode de déclenchement
Choisissez l'approche la plus adaptée à votre cas d'utilisation :
Déclencher à partir d'alertes | Déclencher à partir d'alertes | Exécuter selon un calendrier |
|---|---|---|
Réponse automatisée aux incidents | Test d'un nouveau workflow | bilans de santé réguliers |
Auto-remédiation (redimensionnement EC2, restauration) | Opérations manuelles | Traitement périodique des données |
Notifications d'alerte enrichies | Maintenance ad hoc | Rapports quotidiens ou hebdomadaires |
Configuration: Configurer comme destination d'alerte | API: StartWorkflowRun | API: CreateSchedule |
Conseil
Lorsque les conditions d'alerte sont violées, New Relic peut déclencher automatiquement des workflows en configurant l'automatisation des workflows comme destination. Les issueId et accountId sont transmis automatiquement. Consultez Envoyer des notifications à partir des workflows pour les instructions de configuration.
Avant de commencer
Avant de déclencher le workflow, assurez-vous d'avoir :
- Workflow créé: une définition de workflow déjà déployée dans votre compte à partir d'un modèle ou personnalisé.
- ID de compte: Votre ID de compte New Relic se trouve dans Paramètres du compte.
- Nom du workflow: Le nom exact figurant dans votre définition workflow.
- Entrées requises: Valeurs de tous les paramètres attendus par votre workflow.
- Secrets configurés: identifiants AWS, jetons Slack ou autres secrets stockés dans le gestionnaire de secrets.
Conseil
Vous débutez dans le monde du workflow ? Créez votre premier workflow avant de tenter de le déclencher. Commencez par utiliser un modèle pour les workflows prédéfinis.
Exécuter le workflow à la demande
Déclenchez manuellement des workflows à l'aide de l' API StartWorkflowRun. Cela exécute immédiatement le workflow avec les données que vous fournissez.
Exemple : Appeler une fonction AWS Lambda
La définition workflow suivante invoque une fonction AWS Lambda et enregistre la sortie. Remplacez 12345678 par votre identifiant de compte New Relic.
name: lambda1
workflowInputs: username: type: String defaultValue: "User" key: type: String defaultValue: "${{ :secrets:12345678:USERNAME_AWS_ACCESS_KEY_ID }}" access: type: String defaultValue: "${{ :secrets:12345678:USERNAME_AWS_SECRET_ACCESS_KEY }}" token: type: String defaultValue: "${{ :secrets:12345678:USERNAME_AWS_SESSION_TOKEN }}" region: type: String defaultValue: us-east-1
steps: - name: invoke1 type: action action: aws.lambda.invoke version: 1 inputs: awsAccessKeyId: ${{ .workflowInputs.key }} awsSecretAccessKey: ${{ .workflowInputs.access }} awsSessionToken: ${{ .workflowInputs.token }} region: ${{ .workflowInputs.region }} functionName: hello-you payload: user: ${{ .workflowInputs.username }}
- name: logOutput type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: 'The lambda function message output is:${{ .steps.invoke1.outputs.payload.body }}'Pour démarrer ce workflow, utilisez la mutation NerdGraph suivante. Avant d'exécuter cette mutation, assurez-vous d'avoir stocké vos informations d'identification AWS à l'aide de la mutation secretsManagementCreateSecret. Pour plus d'informations, consultez le gestionnaire de secrets.
mutation { workflowAutomationStartWorkflowRun( # Specify the account where the workflow is defined scope: { type: ACCOUNT id: "12345678" }
# Reference the workflow definition by name definition: { name: "lambda1" }
# Provide input values for the workflow workflowInputs: [ {key: "key" value: "${{ :secrets:testUser123_AWS_ACCESS_KEY_ID }}"} {key: "access" value: "${{ :secrets:testUser123_AWS_SECRET_ACCESS_KEY }}"} {key: "token" value: "${{ :secrets:testUser123_AWS_SESSION_TOKEN }}"} {key: "region" value:"us-east-2"} {key: "username" value: "Julien"} ] ) { runId } }Explication des paramètres :
scope: L'identifiant du compte où est stockée votre définition workflowdefinition: Le nom du workflow à exécuter (doit correspondre au champnamedans votre définition workflow )workflowInputs: paires clé-valeur qui remplacent les valeurs par défaut dans la sectionworkflowInputsde votre définition workflow
La mutation renvoie un runId (par exemple, 7bd25287-2af8-42e1-b783-80f4e760a40b). Utilisez cet identifiant pour interroger les logs et afficher le résultat :

Planifier le workflow
Planifiez l'exécution automatique des workflows à des heures spécifiques à l'aide de l' API CreateSchedule. Les workflows planifiés exécutent des tâches récurrentes sans intervention manuelle.
Quand planifier le workflow :
- bilans de santé réguliers
- Traitement périodique des données
- Rapports quotidiens/hebdomadaires
- Fenêtres de maintenance programmées
- Sauvegardes ou nettoyages récurrents
Référence d'expression Cron
Les planifications utilisent des expressions cron pour définir le moment d'exécution des workflows. Format: minute hour day month weekday
Modèle | Description | Exemple d'utilisation |
|---|---|---|
| Tous les jours à 9h00 | bilans de santé quotidiens du matin |
| Tous les jours de la semaine à 9h00 | opérations en journée |
| Toutes les 6 heures | Opérations de synchronisation régulières |
| Premier jour du mois à minuit | Rapports mensuels |
| Toutes les 10 minutes (intervalle minimum) | Interrogation fréquente, contrôles d'intégrité |
| Tous les dimanches à minuit | Tâches de nettoyage hebdomadaires |
Important
Intervalle de planification minimum : Les planifications doivent être espacées d'au moins 10 minutes. Vous ne pouvez pas planifier l'exécution des workflows plus fréquemment que toutes les 10 minutes. Pour les intervalles inférieurs à 10 minutes, envisagez de planifier toutes les 10 minutes et d'utiliser une étape d'attente dans votre workflow. Consultez la section Limites du workflow pour toutes les contraintes de planification.
Conseil
Syntaxe Cron : * signifie every, / signifie every nth, - signifie range. Exemple : 0 9 * * 1-5 = At minute 0, hour 9, every day, every month, Monday through Friday.
Exemple : Planifier un bilan de santé quotidien
L'exemple suivant planifie l'exécution workflow lambda1 tous les jours à 9 h, heure de l'Est :
mutation { workflowAutomationCreateSchedule( # Specify the account where the workflow is defined scope: { type: ACCOUNT id: "12345678" }
# Reference the workflow definition by name definition: { name: "lambda1" }
# Configure the schedule schedule: { # Cron expression: minute hour day month weekday # "0 9 * * *" = every day at 9:00 AM cronExpression: "0 9 * * *"
# Timezone for the schedule timezone: "America/New_York"
# Optional: Schedule name for identification name: "daily-lambda-health-check"
# Optional: Add a description description: "Runs Lambda health check every morning at 9 AM" }
# Provide input values for the workflow workflowInputs: [ {key: "key" value: "${{ :secrets:testUser123_AWS_ACCESS_KEY_ID }}"} {key: "access" value: "${{ :secrets:testUser123_AWS_SECRET_ACCESS_KEY }}"} {key: "token" value: "${{ :secrets:testUser123_AWS_SESSION_TOKEN }}"} {key: "region" value:"us-east-2"} {key: "username" value: "HealthCheckBot"} ] ) { scheduleId } }Ce que vous obtenez : scheduleId, Identifiant unique de la planification (utilisez-le pour mettre à jour ou supprimer la planification ultérieurement)
Solution de contournement : intervalles inférieurs à 10 minutes
Si vous devez vérifier quelque chose plus fréquemment que toutes les 10 minutes, planifiez votre workflow à l'intervalle minimum de 10 minutes et utilisez une étape d'attente dans la définition du workflow pour créer des intervalles d'interrogation supplémentaires.
Exemple de workflow avec un sondage de 5 minutes :
name: frequent-health-check
steps: # First check happens immediately when scheduled - name: firstCheck type: action action: newrelic.nrdb.query version: 1 inputs: query: "FROM Transaction SELECT count(*) WHERE appName = 'MyApp' SINCE 5 minutes ago"
# Wait 5 minutes - name: waitStep type: wait seconds: 300
# Second check happens 5 minutes after the workflow started - name: secondCheck type: action action: newrelic.nrdb.query version: 1 inputs: query: "FROM Transaction SELECT count(*) WHERE appName = 'MyApp' SINCE 5 minutes ago"Planifiez l'exécution de ce workflow toutes les 10 minutes à l'aide de */10 * * * *. Cela vous donne une interrogation efficace de 5 minutes :
- 0:00 - Le workflow démarre, exécute firstCheck
- 0:05 - secondCheck s'exécute (après l'étape d'attente)
- 0:10 - Le prochain workflow planifié démarre, exécute firstCheck
- 0:15 - secondCheck s'exécute (après l'étape d'attente)
Conseil
Limite de durée du workflow : N'oubliez pas que les workflows ont une durée maximale de 7 jours. Concevez vos étapes d'attente et la fréquence d'interrogation en conséquence. Consultez la section Limites du workflow pour plus de détails.
Gérer les horaires
Après avoir créé un planning :
- Afficher les planifications actives: Consultez toutes les exécutions planifiées dans le dashboardworkflow.
- Mise à jour du planning: Utilisez l’API UpdateSchedule pour modifier la fréquence ou les entrées.
- Supprimer une planification: utilisez l’API DeleteSchedule pour arrêter les exécutions récurrentes.
Pour obtenir la documentation complète de l'API, consultez la section API d'automatisation des workflows.
Et ensuite ?
- Gérer les workflows : modifier, dupliquer et monitorer l’historique d’exécution.