Skip to content

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:

curl -s localhost:8080/actuator/pulse/slo | kubectl apply -f -

See SLO-as-code for the YAML schema and the underlying rule generation logic.