58 lines
2.1 KiB
YAML
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 }})"
|