Comparez les résultats NRQL sur des fenêtres temporelles pour détecter les anomalies que les alertes standard ne peuvent pas détecter.
Exigences:
- Compte New Relic
- Destination de messagerie (voir Envoyer des notifications)
- Planifier via l'API CreateSchedule.
Actions clés: newrelic.nrdb.query, newrelic.notification.sendEmail
Cas d'utilisation: Utilisez ce modèle lorsque les alertes standard ne peuvent pas répondre aux exigences, telles que :
- Comparaison des métriques sur plusieurs fenêtres temporelles
- Application d'opérations mathématiques personnalisées sur les résultats de requête
- Déclenchement uniquement lorsque des seuils ou des modèles spécifiques sont détectés
- Combinaison de données provenant de plusieurs requêtes avec une logique conditionnelle
name: Complex_Alert_Workflow description: 'Compares NRQL results across time windows and sends alerts when new events are detected'
workflowInputs: destinationId: type: String query: type: String defaultValue: 'FROM Span SELECT count(*)'
steps: - name: query1 type: action action: newrelic.nrdb.query version: 1 inputs: query: "${{ .workflowInputs.query }} SINCE 10 minutes ago UNTIL 5 minutes ago" accountIds: - 7401815 selectors: - name: length expression: '[ .results[] | length ]' - name: count expression: '[ .results[0].count ]'
- name: query2 type: action action: newrelic.nrdb.query version: 1 inputs: query: "${{ .workflowInputs.query }} SINCE 5 minutes ago" accountIds: - 7401815 selectors: - name: length expression: '[ .results[] | length ]' - name: count expression: '[ .results[0].count ]'
- name: CheckForNewEvents type: switch switch: - condition: >- ${{ (.steps.query2.outputs.count - .steps.query1.outputs.count) > 0 }} next: sendEmail next: end
- name: sendEmail type: action action: newrelic.notification.sendEmail version: 1 inputs: destinationId: ${{ .workflowInputs.destinationId }} subject: Hello there! message: >- More spans incoming!!! There are --- ${{ (.steps.query2.outputs.count - .steps.query1.outputs.count) }} --- new Spans that were ingested in the last 5 minutes attachments: - type: QUERY query: ${{ .workflowInputs.query }} SINCE 5 minutes ago format: CSV filename: span_count.csv next: endPour planifier, utilisez l'API CreateSchedule avec l'expression cron */10 * * * * (toutes les 10 minutes). L'intervalle minimum est de 10 minutes. Consultez les limites du workflow pour plus de détails.
Et ensuite ?
- Restauration du déploiement: Monitoring automatisée du déploiement
- Gestion EC2: Automatisation de l'infrastructure