Compara los resultados de NRQL a través de ventanas de tiempo para detectar anomalías que las alertas estándar no pueden detectar.
Requisitos:
- Cuenta de New Relic
- Destino de correo electrónico (consulte Enviar notificaciones)
- Programe a través de la API CreateSchedule.
Acciones clave: newrelic.nrdb.query, newrelic.notification.sendEmail
Caso de uso: Utilice este patrón cuando las alertas estándar no puedan cumplir con los requisitos, como:
- Comparación de métricas en múltiples ventanas de tiempo
- Aplicación de operaciones matemáticas personalizadas a los resultados de consulta
- Se activa solo cuando se detectan patrones o umbrales específicos
- Combinando datos de múltiples consultas con lógica condicional
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: endPara programar, use la API CreateSchedule con la expresión cron */10 * * * * (cada 10 minutos). El intervalo mínimo es de 10 minutos. Consulte los límites del flujo de trabajo para obtener más detalles.