[英]How to make Prometheus alert description give both ratio and absolute numbers?
我目前有一个Prometheus警报,当我的成功率下降到85%以下时会触发。
我想将比率的绝对数字添加到警报描述中。 我怎么做?
我的YAML当前看起来像这样(我清理了一些多余的细节):
groups:
- name: recording_rules
rules:
- record: number_of_successes_24h
expr: avg(sum by(instance)(my_status{kubernetes_name="my-prom",timeRange="1d",status=~"success"}))
- record: number_of_total_24h
expr: avg(sum by(instance)(my_status{kubernetes_name="my-prom",timeRange="1d"}))
- record: success_rate_24h
expr: clamp_max(number_of_successes_24h / number_of_total_24h * 100, 100)
- name: alerting_rules
rules:
- alert: LowSuccessRate24H
expr: success_rate_24h < 85
labels:
severity: critical
annotations:
summary: "CRITICAL: Low success rate 24h"
description: "Success rate in the last 24 hours went below 85% (value: {{ $value }}%)"
我的问题是,如何在说明中添加number_of_successes_24h
和number_of_total_24h
?
我在https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/上阅读了官方文档,但是我迷路了。 我搜索了SO,但没有发现任何相关信息。
我读到$labels
中还有其他详细信息,因此我尝试打印该示例作为示例以查看其中的内容,但是我得到了map[__name__:success_rate_24h]
,但我不知道该怎么看。
欢迎提供部分答案和指南。 谢谢。
这是我的TasksMissing
警报的简化版本,它在摘要中输出缺少的任务数,任务总数和受影响的实例:
- alert: TasksMissing
expr: |
job_env:up:ratio < .7
for: 2m
labels:
severity: warning
annotations:
summary: Tasks missing for {{ $labels.job }} in {{ $labels.env }}
description:
'{{ with printf `job_env:up:count{job="%s",env="%s"} - job_env:up:sum{job="%s",env="%s"}` $labels.job $labels.env $labels.job $labels.env | query }}
{{- . | first | value -}}
{{ end }}
of
{{ with printf `job_env:up:count{job="%s",env="%s"}` $labels.job $labels.env | query }}
{{- . | first | value -}}
{{ end }}
{{ $labels.job }} instances are missing in {{ $labels.env }}:
{{ range printf `up{job="%s",env="%s"}==0` $labels.job $labels.env | query }}
{{- .Labels.instance }}
{{ end }}'
预期结果描述类似于“ prod中缺少3个foo服务实例中的2个:foo01.prod.foo.org:8080 foo02.prod.foo.org:8080”。
这个想法是,您可以使用Go模板生成查询(通过使用printf
用$labels
值填充模板),然后将其通过管道传输到Prometheus定义的query
函数中,并返回任一结果(您可以使用with
处理)或多个值(您可以使用range
进行迭代)。 然后,您可以直接打印时间序列值或某些标签(例如,实例名称)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.