Alerts


/etc/prometheus/alert_rules.yml > application-alerts
HighAPILatency (0 active)
alert: HighAPILatency
expr: histogram_quantile(0.95,
  rate(http_request_duration_seconds_bucket{service="lead-gen-saas"}[5m]))
  > 2
for: 5m
labels:
  severity: warning
annotations:
  description: 95th percentile latency is {{ $value | printf "%.2f" }}s
  summary: High API latency on {{ $labels.instance }}
HighHTTPErrorRateInsightful (0 active)
alert: HighHTTPErrorRateInsightful
expr: rate(container_fs_read_bytes_total{image=~".*insightful.*"}[5m])
  > 1e+07
for: 5m
labels:
  severity: warning
annotations:
  summary: High I/O on Insightful Booking container
HighHTTPErrorRateLeadGen (0 active)
alert: HighHTTPErrorRateLeadGen
expr: rate(http_requests_total{service="lead-gen-saas",status=~"5.."}[5m])
  > 0.1
for: 5m
labels:
  severity: critical
annotations:
  description: 5xx error rate is {{ $value | printf "%.2f" }}/s
  summary: High 5xx error rate on Lead Gen API
/etc/prometheus/alert_rules.yml > container-alerts
ContainerDown (0 active)
alert: ContainerDown
expr: container_spec_image_tag
  == 0
for: 1m
labels:
  severity: critical
annotations:
  summary: 'Container down: {{ $labels.name }}'
ContainerHighCPU (0 active)
alert: ContainerHighCPU
expr: rate(container_cpu_usage_seconds_total[5m])
  * 100 > 90
for: 5m
labels:
  severity: warning
annotations:
  description: 'CPU usage: {{ $value | printf "%.1f" }}%'
  summary: Container {{ $labels.name }} high CPU
ContainerHighMemory (0 active)
alert: ContainerHighMemory
expr: container_memory_usage_bytes
  / container_spec_memory_limit_bytes > 0.9
for: 5m
labels:
  severity: warning
annotations:
  description: 'Memory usage: {{ $value | printf "%.1f" }}%'
  summary: Container {{ $labels.name }} high memory
ContainerRestarting (0 active)
alert: ContainerRestarting
expr: changes(container_last_seen[5m])
  > 5
for: 1m
labels:
  severity: warning
annotations:
  summary: Container {{ $labels.name }} restarting frequently
/etc/prometheus/alert_rules.yml > database-alerts
PostgresExporterDown (3 active)
alert: PostgresExporterDown
expr: up{job=~"postgres.*"}
  == 0
for: 5m
labels:
  severity: critical
annotations:
  summary: PostgreSQL exporter down for {{ $labels.job }}
Labels State Active Since Value
alertname="PostgresExporterDown" component="postgresql" database="insightful_booking_prod" instance="localhost:9188" job="postgres-insightful" service="insightful-booking" severity="critical" firing 2026-07-06 17:45:16.610865355 +0000 UTC 0
alertname="PostgresExporterDown" component="postgresql" database="lead_gen_saas" instance="localhost:9187" job="postgres-leadgen" service="lead-gen-saas" severity="critical" firing 2026-07-06 17:45:16.610865355 +0000 UTC 0
alertname="PostgresExporterDown" component="postgresql" database="billionmail" instance="localhost:9189" job="postgres-billionmail" service="billionmail" severity="critical" firing 2026-07-06 17:45:16.610865355 +0000 UTC 0
PostgresDeadTuples (0 active)
alert: PostgresDeadTuples
expr: pg_stat_user_tables_n_dead_tup
  > 10000
for: 1h
labels:
  severity: warning
annotations:
  description: Table {{ $labels.relname }} has {{ $value }} dead tuples
  summary: High dead tuple count on {{ $labels.database }}
PostgresLongRunningQueries (0 active)
alert: PostgresLongRunningQueries
expr: pg_stat_activity_count{datname!~"template.*"}
  > 10
for: 5m
labels:
  severity: warning
annotations:
  summary: Many active queries on {{ $labels.database }}
PostgresTooManyConnections (0 active)
alert: PostgresTooManyConnections
expr: pg_stat_activity_count
  > 80
for: 5m
labels:
  severity: warning
annotations:
  description: 'Active connections: {{ $value }}'
  summary: PostgreSQL connections high on {{ $labels.database }}
/etc/prometheus/alert_rules.yml > exporter-alerts
ExporterDown (9 active)
alert: ExporterDown
expr: up == 0
for: 5m
labels:
  severity: warning
annotations:
  description: '{{ $labels.job }} has been down for 5 minutes'
  summary: 'Exporter down: {{ $labels.job }}'
Labels State Active Since Value
alertname="ExporterDown" component="web-server" instance="localhost:9113" job="nginx" service="nginx" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" instance="localhost:9257" job="process" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="backend-api" instance="localhost:5000" job="lead-gen-backend" service="lead-gen-saas" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="node-exporter" instance="localhost:9100" job="node" service="infrastructure" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="postgresql" database="insightful_booking_prod" instance="localhost:9188" job="postgres-insightful" service="insightful-booking" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="pm2" instance="localhost:9257" job="pm2" service="insightful-booking" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="postgresql" database="lead_gen_saas" instance="localhost:9187" job="postgres-leadgen" service="lead-gen-saas" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="container-metrics" instance="localhost:9280" job="cadvisor" service="infrastructure" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
alertname="ExporterDown" component="postgresql" database="billionmail" instance="localhost:9189" job="postgres-billionmail" service="billionmail" severity="warning" firing 2026-07-06 17:45:23.964015776 +0000 UTC 0
PrometheusTargetMissing (9 active)
alert: PrometheusTargetMissing
expr: up{job!="prometheus"}
  == 0
for: 10m
labels:
  severity: critical
annotations:
  description: Target {{ $labels.instance }} has been down for 10 minutes
  summary: 'Prometheus target missing: {{ $labels.job }}'
Labels State Active Since Value
alertname="PrometheusTargetMissing" component="web-server" instance="localhost:9113" job="nginx" service="nginx" severity="critical" firing 2026-06-04 04:40:23 +0000 UTC 0
alertname="PrometheusTargetMissing" component="backend-api" instance="localhost:5000" job="lead-gen-backend" service="lead-gen-saas" severity="critical" firing 2026-06-04 04:40:38 +0000 UTC 0
alertname="PrometheusTargetMissing" component="node-exporter" instance="localhost:9100" job="node" service="infrastructure" severity="critical" firing 2026-06-04 04:40:38 +0000 UTC 0
alertname="PrometheusTargetMissing" component="postgresql" database="insightful_booking_prod" instance="localhost:9188" job="postgres-insightful" service="insightful-booking" severity="critical" firing 2026-06-04 04:40:53 +0000 UTC 0
alertname="PrometheusTargetMissing" component="postgresql" database="lead_gen_saas" instance="localhost:9187" job="postgres-leadgen" service="lead-gen-saas" severity="critical" firing 2026-06-04 04:40:38 +0000 UTC 0
alertname="PrometheusTargetMissing" instance="localhost:9257" job="process" severity="critical" firing 2026-06-04 04:40:23 +0000 UTC 0
alertname="PrometheusTargetMissing" component="pm2" instance="localhost:9257" job="pm2" service="insightful-booking" severity="critical" firing 2026-06-04 04:40:38 +0000 UTC 0
alertname="PrometheusTargetMissing" component="postgresql" database="billionmail" instance="localhost:9189" job="postgres-billionmail" service="billionmail" severity="critical" firing 2026-06-04 04:40:38 +0000 UTC 0
alertname="PrometheusTargetMissing" component="container-metrics" instance="localhost:9280" job="cadvisor" service="infrastructure" severity="critical" firing 2026-06-04 04:40:38 +0000 UTC 0
/etc/prometheus/alert_rules.yml > nginx-alerts
NginxConnectionFailures (0 active)
alert: NginxConnectionFailures
expr: rate(nginx_connections_failed[5m])
  > 0.1
for: 5m
labels:
  severity: warning
annotations:
  description: 'Failed connections: {{ $value | printf "%.2f" }}/s'
  summary: Nginx connection failures
NginxHigh4xxErrors (0 active)
alert: NginxHigh4xxErrors
expr: rate(nginx_http_requests_total{status=~"4.."}[5m])
  > 0.5
for: 5m
labels:
  severity: warning
annotations:
  description: '4xx rate: {{ $value | printf "%.2f" }}/s'
  summary: High 4xx error rate on Nginx
NginxHigh5xxErrors (0 active)
alert: NginxHigh5xxErrors
expr: rate(nginx_http_requests_total{status=~"5.."}[5m])
  > 0.05
for: 5m
labels:
  severity: critical
annotations:
  description: '5xx rate: {{ $value | printf "%.2f" }}/s'
  summary: High 5xx error rate on Nginx
/etc/prometheus/alert_rules.yml > redis-alerts
RedisHighMemory (1 active)
alert: RedisHighMemory
expr: redis_memory_used_bytes
  / redis_memory_max_bytes > 0.9
for: 5m
labels:
  severity: warning
annotations:
  description: Memory usage is {{ $value | printf "%.1f" }}%
  summary: Redis memory usage high
Labels State Active Since Value
alertname="RedisHighMemory" component="redis" instance="localhost:9121" job="redis" service="infrastructure" severity="warning" firing 2026-07-06 17:45:21.180550867 +0000 UTC +Inf
RedisManyExpiredKeys (0 active)
alert: RedisManyExpiredKeys
expr: rate(redis_expired_keys_total[5m])
  > 1000
for: 5m
labels:
  severity: info
annotations:
  summary: High rate of expired keys
RedisTooManyConnections (0 active)
alert: RedisTooManyConnections
expr: redis_connected_clients
  > 100
for: 5m
labels:
  severity: warning
annotations:
  description: 'Connected clients: {{ $value }}'
  summary: Redis connected clients high
/etc/prometheus/alert_rules.yml > system-alerts
HighCPUUsage (0 active)
alert: HighCPUUsage
expr: 100
  - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90
for: 5m
labels:
  severity: warning
annotations:
  description: CPU usage is {{ $value | printf "%.1f" }}%
  summary: High CPU usage on {{ $labels.instance }}
HighLoadAverage (0 active)
alert: HighLoadAverage
expr: node_load1
  / count(node_cpu_seconds_total{mode="idle"}) > 1.5
for: 10m
labels:
  severity: warning
annotations:
  description: Load average is {{ $value | printf "%.2f" }}
  summary: High load average on {{ $labels.instance }}
HighMemoryUsage (0 active)
alert: HighMemoryUsage
expr: (1
  - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 > 90
for: 5m
labels:
  severity: warning
annotations:
  description: Memory usage is {{ $value | printf "%.1f" }}%
  summary: High memory usage on {{ $labels.instance }}
LowDiskSpace (0 active)
alert: LowDiskSpace
expr: (1
  - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}))
  * 100 > 85
for: 10m
labels:
  severity: warning
annotations:
  description: Disk usage is {{ $value | printf "%.1f" }}%
  summary: Low disk space on {{ $labels.instance }}