fischerX/infra/monitoring/prometheus/rules/application-alerts.yml

58 lines
2.1 KiB
YAML

groups:
- name: application_alerts
interval: 30s
rules:
- alert: HighErrorRate
expr: sum(rate(http_requests_total{status=~"5.."}[5m])) by (job, route) / sum(rate(http_requests_total[5m])) by (job, route) > 0.05
for: 2m
labels:
severity: warning
annotations:
summary: "应用 {{ $labels.job }} 路由 {{ $labels.route }} 错误率过高"
description: "错误率超过5% (当前: {{ $value | humanizePercentage }})"
- alert: HighLatency
expr: histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, job, route)) > 1
for: 3m
labels:
severity: warning
annotations:
summary: "应用 {{ $labels.job }} 路由 {{ $labels.route }} 延迟过高"
description: "95百分位响应时间超过1秒 (当前: {{ $value }}s)"
- alert: ApiHealthCheckFailed
expr: up{job="fischerx-api"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "FischerX API 不可用"
description: "API服务已超过1分钟不可用"
- alert: HighRequestRate
expr: sum(rate(http_requests_total[1m])) by (job) > 1000
for: 5m
labels:
severity: info
annotations:
summary: "应用 {{ $labels.job }} 请求量过高"
description: "当前请求率: {{ $value }} qps"
- alert: DatabaseConnectionError
expr: increase(database_connection_errors_total[5m]) > 10
for: 2m
labels:
severity: critical
annotations:
summary: "数据库连接错误"
description: "过去5分钟内数据库连接错误: {{ $value }} 次"
- alert: CacheHitRateLow
expr: (sum(rate(cache_hits_total[5m])) by (job) / sum(rate(cache_requests_total[5m])) by (job)) < 0.7
for: 5m
labels:
severity: warning
annotations:
summary: "应用 {{ $labels.job }} 缓存命中率过低"
description: "缓存命中率低于70% (当前: {{ $value | humanizePercentage }})"