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, utilice la API CreateSchedule con la expresión cron */10 * * * * (cada 10 minutos). El intervalo mínimo es de 10 minutos. Consulte límites del flujo de trabajo para obtener más detalles.
Que sigue
- Reversión de implementación: Monitoreo de implementación automatizado
- Gestión de EC2: Automatización de la infraestructura