Prometheus的告警規則是通過在Prometheus的配置文件中定義來的。在配置文件中,我們可以使用PromQL語言來定義告警規則,例如:
groups:
- name: example
rules:
- alert: HighErrorRate
expr: sum(rate(http_requests_total{status="500"}[5m])) / sum(rate(http_requests_total[5m])) * 100 > 1
for: 5m
labels:
severity: critical
annotations:
summary: High error rate detected
在上面的例子中,我們定義了一個告警規則,名稱為HighErrorRate,當過去5分鐘內http請求中狀態碼為500的請求占比超過1%時,觸發告警。告警規則還可以設置如何觸發告警(例如for多少時間內滿足條件)、告警的標簽和注釋等信息。
告警規則觸發的條件是通過Prometheus監控的時間序列數據來計算的。當定義的表達式計算結果為true時,表示條件滿足,觸發告警。
告警的觸發是由Prometheus自動進行的,當某個告警規則的條件滿足時,Prometheus會生成一個告警事件,并發送給Alertmanager進行處理。Alertmanager可以根據配置的路由規則,將告警事件發送給指定的接收者(如郵件、Slack等)。