【发布时间】:2020-05-18 08:03:46
【问题描述】:
- name: app
rules:
- alert: ServerHighLatency
expr: sum by(applicationName) (rate(http_server_requests_seconds_sum{status!~"4..|5.."}[1m]))/sum by(applicationName) (rate(http_server_requests_seconds_count{status!~"4..|5.."}[1m])) >= 5s
for: 5s
labels:
severity: critical
annotations:
summary: "{{ $labels.applicationName }} is responding with high latency(5s+)"
description: "*Host*: {{ $labels.node }}\n*Datacenter*: {{ $labels.datacenter }}\n*Value*: {{ humanize $value }}\n"
但是我在表达式中的最后一个 s 周围遇到了解析错误,所以我想这是不允许的。当我删除 s 时,它可以工作,但永远不会被触发。我找不到任何警报示例来检查某个范围内的平均响应时间,而只能按值进行比较,例如“某个百分位数 > 0.8”,而不是时间单位。是否有意义?
旁注:我无法让{{ $labels.datacenter }} 和{{ $labels.node }} 工作,但{{ $labels.applicationName }} 工作,为什么?我在哪里可以找到关于 Prometheus 中警报语法的一些好的示例和文档?
【问题讨论】:
标签: prometheus prometheus-alertmanager