Files
telecom-platform/monitoring/prometheus/alert_rules.yml
T
nutcas3 8a63cab829 feat: Add Prometheus alert rules with comprehensive monitoring for platform services and infrastructure
- Add telecom_platform_alerts group with 30s evaluation interval
- Add API Server alerts (high error rate >0.1/s, high latency >1s p99, down >2m)
- Add Charging Engine alerts (high error rate, down, high memory >90%)
- Add Carrier Connector alerts (high error rate, down)
- Add Packet Gateway alerts (down, high packet drop rate >100/s)
- Add Web Dashboard down alert (warning severity)
- Add PostgreSQL alerts (down, high connection count >80%,
2026-04-25 05:34:21 +03:00

237 lines
7.9 KiB
YAML

groups:
- name: telecom_platform_alerts
interval: 30s
rules:
# API Server Alerts
- alert: APIServerHighErrorRate
expr: rate(http_requests_total{job="telecom-api-server",status=~"5.."}[5m]) > 0.1
for: 5m
labels:
severity: critical
service: api-server
annotations:
summary: "API Server error rate is high"
description: "API Server error rate is {{ $value }} errors per second for the last 5 minutes"
- alert: APIServerHighLatency
expr: histogram_quantile(0.99, rate(http_request_duration_seconds_bucket{job="telecom-api-server"}[5m])) > 1
for: 10m
labels:
severity: warning
service: api-server
annotations:
summary: "API Server latency is high"
description: "API Server 99th percentile latency is {{ $value }}s for the last 10 minutes"
- alert: APIServerDown
expr: up{job="telecom-api-server"} == 0
for: 2m
labels:
severity: critical
service: api-server
annotations:
summary: "API Server is down"
description: "API Server has been down for more than 2 minutes"
# Charging Engine Alerts
- alert: ChargingEngineHighErrorRate
expr: rate(http_requests_total{job="telecom-charging-engine",status=~"5.."}[5m]) > 0.1
for: 5m
labels:
severity: critical
service: charging-engine
annotations:
summary: "Charging Engine error rate is high"
description: "Charging Engine error rate is {{ $value }} errors per second for the last 5 minutes"
- alert: ChargingEngineDown
expr: up{job="telecom-charging-engine"} == 0
for: 2m
labels:
severity: critical
service: charging-engine
annotations:
summary: "Charging Engine is down"
description: "Charging Engine has been down for more than 2 minutes"
- alert: ChargingEngineHighMemoryUsage
expr: container_memory_usage_bytes{container="charging-engine"} / container_spec_memory_limit_bytes{container="charging-engine"} > 0.9
for: 5m
labels:
severity: warning
service: charging-engine
annotations:
summary: "Charging Engine memory usage is high"
description: "Charging Engine memory usage is above 90%"
# Carrier Connector Alerts
- alert: CarrierConnectorHighErrorRate
expr: rate(http_requests_total{job="telecom-carrier-connector",status=~"5.."}[5m]) > 0.1
for: 5m
labels:
severity: critical
service: carrier-connector
annotations:
summary: "Carrier Connector error rate is high"
description: "Carrier Connector error rate is {{ $value }} errors per second for the last 5 minutes"
- alert: CarrierConnectorDown
expr: up{job="telecom-carrier-connector"} == 0
for: 2m
labels:
severity: critical
service: carrier-connector
annotations:
summary: "Carrier Connector is down"
description: "Carrier Connector has been down for more than 2 minutes"
# Packet Gateway Alerts
- alert: PacketGatewayDown
expr: up{job="telecom-packet-gateway"} == 0
for: 2m
labels:
severity: critical
service: packet-gateway
annotations:
summary: "Packet Gateway is down"
description: "Packet Gateway has been down for more than 2 minutes"
- alert: PacketGatewayHighPacketDropRate
expr: rate(packet_drops_total[5m]) > 100
for: 5m
labels:
severity: warning
service: packet-gateway
annotations:
summary: "Packet Gateway packet drop rate is high"
description: "Packet Gateway is dropping {{ $value }} packets per second"
# Web Dashboard Alerts
- alert: WebDashboardDown
expr: up{job="web-dashboard"} == 0
for: 2m
labels:
severity: warning
service: web-dashboard
annotations:
summary: "Web Dashboard is down"
description: "Web Dashboard has been down for more than 2 minutes"
# Database Alerts
- alert: PostgresDown
expr: up{job="postgres"} == 0
for: 2m
labels:
severity: critical
service: postgres
annotations:
summary: "PostgreSQL is down"
description: "PostgreSQL has been down for more than 2 minutes"
- alert: PostgresHighConnectionCount
expr: pg_stat_database_numbackends / pg_settings_max_connections > 0.8
for: 5m
labels:
severity: warning
service: postgres
annotations:
summary: "PostgreSQL connection count is high"
description: "PostgreSQL connection usage is above 80%"
- alert: PostgresSlowQueries
expr: rate(pg_stat_statements_calls_total{datname="telecom_platform"}[5m]) > 100
for: 10m
labels:
severity: warning
service: postgres
annotations:
summary: "PostgreSQL slow queries detected"
description: "PostgreSQL is experiencing slow queries"
# Redis Alerts
- alert: RedisDown
expr: up{job="redis"} == 0
for: 2m
labels:
severity: critical
service: redis
annotations:
summary: "Redis is down"
description: "Redis has been down for more than 2 minutes"
- alert: RedisHighMemoryUsage
expr: redis_memory_used_bytes / redis_memory_max_bytes > 0.9
for: 5m
labels:
severity: warning
service: redis
annotations:
summary: "Redis memory usage is high"
description: "Redis memory usage is above 90%"
- alert: RedisHighConnectionCount
expr: redis_connected_clients > 1000
for: 5m
labels:
severity: warning
service: redis
annotations:
summary: "Redis connection count is high"
description: "Redis has {{ $value }} connected clients"
# Infrastructure Alerts
- alert: HighCPUUsage
expr: rate(container_cpu_usage_seconds_total[5m]) > 0.8
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU usage detected"
description: "Container CPU usage is above 80%"
- alert: HighMemoryUsage
expr: container_memory_usage_bytes / container_spec_memory_limit_bytes > 0.9
for: 5m
labels:
severity: warning
annotations:
summary: "High memory usage detected"
description: "Container memory usage is above 90%"
- alert: DiskSpaceLow
expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) < 0.1
for: 5m
labels:
severity: critical
annotations:
summary: "Disk space is low"
description: "Disk space on / is below 10%"
- alert: PodCrashLooping
expr: rate(kube_pod_container_status_restarts_total[15m]) > 0
for: 5m
labels:
severity: warning
annotations:
summary: "Pod is crash looping"
description: "Pod {{ $labels.pod }} in namespace {{ $labels.namespace }} is crash looping"
# Business Logic Alerts
- alert: LowSubscriberCount
expr: teleco_subscribers_total < 100
for: 30m
labels:
severity: info
annotations:
summary: "Low subscriber count"
description: "Total subscriber count is {{ $value }}"
- alert: HighFailedTransactions
expr: rate(teleco_transactions_failed_total[5m]) > 10
for: 5m
labels:
severity: warning
annotations:
summary: "High failed transaction rate"
description: "Failed transaction rate is {{ $value }} per second"