Skip to content

Runbooks

Each alert defined in infrastructure/monitoring/prometheus/alert_rules.yml has a runbook page below. The Alertmanager email carries the runbook_url annotation; the control panel /alerts page renders it as a clickable link.

The CI check at backend/tests/test_alert_rules_have_runbooks.py asserts every rule has a runbook_url annotation and that the corresponding markdown file exists. A missing runbook fails the build — see the template for how to write one.

When docs.innoqualis.com itself is down (the worst case for runbook access), fall back to the source files under docs/starlight/src/content/docs/runbooks/ in the EQMS repo, or run make runbook ALERT=<name> once that helper lands (Phase 30.8 follow-up).

These page on-call immediately and (for audience: tenant or both) also email tenant admins.

AlertAudienceRunbook
BackendDown / BackendDownSyntheticProbeboth / opsBackend down (initial runbook covers both Spec 30.1 synthetic probe + 30.3 production SLO rule)
BackupJobFailedopsBackup job failed
CertbotRenewalStalledopsCertbot renewal stalled (stub — Phase 30.4)
DatabaseConnectionIssuesopsDatabase connection errors
DBPoolExhaustedopsDB pool exhausted (stub — Phase 30.3)
DeploymentFailedopsDeployment failed
DiskSpaceLowopsDisk space low
HighErrorRatebothHigh 5xx error rate
HTTPSUptimeDownbothHTTPS uptime down (stub — Phase 30.2)
InnoQualisBackendDownbothInnoQualis backend down
InnoQualisFrontendDownbothInnoQualis frontend down
ListmonkDownopsListmonk down (stub — Phase 30.3)
N8nDownopsn8n down (stub — Phase 30.3)
PayloadCMSDownopsPayloadCMS down (stub — Phase 30.3)
PodCrashLoopBackOffopsPod crash-loop backoff
QdrantDownopsQdrant down (stub — Phase 30.3)
RedisConnectionIssuesopsRedis connection errors
RedisDownopsRedis down (stub — Phase 30.3)
TLSCertExpiring7dopsTLS cert expiring within 7 days (stub — Phase 30.2)
TwentyDownopsTwenty CRM down (stub — Phase 30.3)

These surface in the control panel and email ops; they do not escalate to tenant admins (per the audience-severity gate in ADR 0033).

AlertAudienceRunbook
BackendP95RegressionopsBackend p95 regression (stub — Phase 30.3)
Backend5xxRateSpikeopsBackend 5xx rate spike (stub — Phase 30.3)
CertificateExpiringSoonopsCertificate expiring soon
HighCPUUsageopsHigh CPU usage
HighMemoryUsageopsHigh memory usage
HighResponseTimeopsHigh response time
InnoQualisHighCPUUsageopsInnoQualis backend CPU
InnoQualisHighMemoryUsageopsInnoQualis backend memory
PodNotReadyopsPod not ready
TLSCertExpiring30dopsTLS cert expiring within 30 days (stub — Phase 30.2)