簡體   English   中英

普羅米修斯警報中缺少標簽

[英]Missing labels in prometheus alerts

我在使用 Prometheus 警報規則時遇到問題。 我設置了各種 cAdvisor 特定警報,例如:

- alert: ContainerCpuUsage
  expr: (sum(rate(container_cpu_usage_seconds_total[3m])) BY (instance, name) * 100) > 80
  for: 2m
  labels:
    severity: warning
  annotations:
    title: 'Container CPU usage (instance {{ $labels.instance }})'
    description: 'Container CPU usage is above 80%\n  VALUE = {{ $value }}\n  LABELS: {{ $labels }}'

滿足條件時,我可以在 Prometheus 的“警報”選項卡中看到警報,但是缺少一些標簽,因此不允許警報管理器通過 Slack 發送通知。 具體來說,我將自定義“env” label 附加到每個目標:

 {
  "targets": [
   "localhost:8080",
  ],
  "labels": {
   "job": "cadvisor",
   "env": "production",
   "__metrics_path__": "/metrics"
  }
 }

但是當基於 cadvisor 指標的警報觸發時,標簽是:警報名稱、實例和嚴重性 - 沒有作業 label,沒有環境 label。 來自其他出口商(fe node-exporter)的所有其他警報都可以正常工作,並且存在 label。

這是由於您使用的sum function ; 它收集了所有存在的時間序列,並將它們添加到BY (instance, name)中。 如果您在 Prometheus 中運行相同的查詢,您會看到sum只剩下分組標簽:

{instance="foo", name="bar"}    135.38819037447163

其他聚合方法,如avgmaxmin等,以相同的方式工作。 要恢復 label,只需將env添加到分組列表中: by (instance, name, env)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM