Alerts¶
Pulse ships a Prometheus alert rule file at
alerts/prometheus/pulse-slo-alerts.yaml
that you can drop into your Prometheus rule_files (or apply via
PrometheusRule if you run the Prometheus Operator).
What ships¶
| Alert | Fires on | Runbook |
|---|---|---|
PulseCardinalityOverflow |
rate(pulse_cardinality_overflow_total[5m]) > 0 |
Cardinality firewall overflow |
PulseTimeoutBudgetExhausted |
rate(pulse_timeout_budget_exhausted_total[5m]) > 0 for 2m |
Timeout-budget exhausted |
PulseTraceContextMissing |
Missing-trace ratio > 5% over 10m | Trace context missing |
PulseKafkaConsumerFallingBehind |
pulse_kafka_consumer_time_lag_seconds > 300 for 5m |
(TBD) |
PulseConfigDrift |
count(distinct pulse_config_hash) by (application, env) > 1 |
(TBD) |
PulseHikariCpSaturated |
Pool utilisation > 90% for 5m | HikariCP saturation |
PulseOtelExporterStale |
pulse_otel_exporter_last_success_age_seconds > 300 |
(TBD) |
| Per-SLO multi-window burn-rate alerts | Generated dynamically from pulse.slo.objectives — see SLO-as-code |
Error-budget burn |
Generating SLO alerts¶
The /actuator/pulse/slo endpoint emits a PrometheusRule document
containing recording rules + multi-window burn-rate alerts for every
objective declared in pulse.slo.objectives. Apply with:
See SLO-as-code for the YAML schema and the underlying rule generation logic.