1. Principe #
Déclencheur, tâches, conditions.
Structure #
| Déclencheur | Exemple |
|---|---|
| Événement | Ouverture d'un problème Davis, événement de sécurité, événement personnalisé |
| Planification | Chaque lundi à 8 h : rapport de coûts ; toutes les heures : vérification |
| À la demande | Bouton dans une application ou appel d'API |
Les tâches s'enchaînent avec des conditions ({{ result("query").records | length > 0 }}), des boucles, des nouvelles tentatives et des délais.
2. Exemple #
Notifier avec du contexte.
Tâche JavaScript #
import { execution } from '@dynatrace-sdk/automation-utils';
export default async function ({ execution_id }) {
const ex = await execution(execution_id);
const problem = ex.event(); // l'événement déclencheur
const critical = problem['event.category'] === 'AVAILABILITY';
return {
channel: critical ? '#astreinte' : '#ops',
text: `${problem['display_id']} : ${problem['event.name']} (${problem['affected_entity_ids']?.length ?? 0} entités)`,
};
}La tâche suivante (Slack ou Teams) utilise {{ result("decide").channel }} et {{ result("decide").text }}.
À savoir : Les noms exacts des fonctions du SDK et des champs d'événement dépendent de la version : partez des modèles de workflows proposés dans l'application et adaptez-les.
3. Remédier sans risque #
Garde-fous.
Règles #
- Commencer par des actions réversibles : redémarrer un pod, vider un cache, augmenter un réplica.
- Ajouter une approbation humaine (tâche d'attente ou bouton) pour les actions destructrices.
- Limiter la fréquence : un workflow qui redémarre un service en boucle aggrave l'incident.
- Exécuter les workflows avec un acteur technique et des permissions minimales.
Erreur Courante : Un workflow tourne avec les droits de son acteur : un workflow créé par un administrateur et modifiable par tous est une élévation de privilèges.
