Alerting Prometheus¶
Sugerencias de reglas:
# Instancias activas debajo del esperado
qrsgen_active_instances < 4
# Tasa alta de errores
rate(qrsgen_message_dispatch_errors_total[5m]) > 0.1
# Spamguard activo (alguien está duplicando)
increase(qrsgen_spamguard_blocks_total[5m]) > 5
# Strike de WhatsApp (¡acción inmediata!)
increase(qrsgen_lifecycle_events_total{event="strike"}[1h]) > 0
# Ban risk alto sostenido
increase(qrsgen_lifecycle_events_total{event="ban_risk"}[10m]) > 0
# Outbox creciendo (instancia probablemente caída)
increase(qrsgen_lifecycle_events_total{event="outgoing_expired"}[1h]) > 0
# Tasa de errores downstream en features real-time > 10% durante 5 min
# (avatar / reaction / typing / read_receipt — desde v0.35.0)
(
sum by (feature) (rate(qrsgen_realtime_events_total{result="ds_error"}[5m]))
/
sum by (feature) (rate(qrsgen_realtime_events_total[5m]))
) > 0.10
# Burst de wa_error en avatares (sesión WA degradada)
increase(qrsgen_realtime_events_total{feature="avatar",result="wa_error"}[10m]) > 20
Las queries de qrsgen_realtime_events_total y más sugerencias de
paneles Grafana están documentadas en
Observabilidad.
Glosario¶
Alerting rule: expresión PromQL que, cuando se cumple, dispara una alerta. Se evalúa cada N segundos por Prometheus.
increase() (PromQL): incremento absoluto de un counter en una ventana. Útil para "cuántas veces pasó X en el último periodo".
rate() (PromQL): tasa promedio por segundo de un counter en una ventana. Útil para "cuánto está ocurriendo X por unidad de tiempo".
Threshold (alerta): valor de la expresión por encima del cual se considera "alerta activa". Más bajo = más sensible (más false positives); más alto = menos sensible (false negatives).
Strike (lifecycle event): TemporaryBan o ConnectFailure 4xx de WhatsApp. Crítico — debería paginar inmediatamente.
Outbox expired (lifecycle event): mensaje en el outbox que no se entregó antes del TTL. Indica que una instancia lleva caída más de 5 min.
Active instances (gauge): snapshot del número de instancias actualmente conectadas. Si baja del esperado, alerta.
Dispatch error: fallo al enviar un mensaje (a WhatsApp o al
downstream). El label kind indica el tipo concreto.