edh*_*ose 5 grafana prometheus
我们正在使用 Grafana 来监控某些事件和火灾警报。数据存储在 Prometheus 中(但我们没有使用 Prometheus Alert Manager)。
昨晚,我们的一项指标出现问题,目前我们没有警报。我想添加一个,但我正在努力确定这样做的最佳方法。
在这种情况下,该指标的 Y 轴非常低,一夜之间(图表左侧的 02:00-07:00),您可以看到该指标下降到接近零。
我们想检测到晚上 8 点右侧的急剧下降。我们在晚上 9 点(平线)检测到下降完全为零,但我想确定突然下降。
我们的普罗米修斯查询是:
sum(rate({__name__=~"metric_name_.+"}[1m])) by (grouping)
Run Code Online (Sandbox Code Playgroud)
我试过看一些东西,比如:
sum(increase({__name__=~"metric_name_.+"}[1m])) by (grouping)
Run Code Online (Sandbox Code Playgroud)
但它们大体上最终都得到了与下图相似的图形,但在 Y 轴刻度上存在差异,并且很难区分“接近零和安静”和“接近零”,因为指标已经下降了悬崖”。
我们可以使用 Grafana 和 Prometheus 设置的哪些组合来有效识别此更改?
您使用了错误的函数:对于仪表,您应该使用delta() 函数。它将在一分钟内暴露水滴:
sum(delta(rate({__name__=~"metric_name_.+"}[1m])[1m:])) by (grouping)
Run Code Online (Sandbox Code Playgroud)
下一步是定义将触发错误的下降百分比 - 下降 80%(注意:sum by(grouping)为了清楚起见,省略 ):
(-100 * delta(rate({__name__=~"metric_name_.+"}[1m])[1m:]) / rate({__name__=~"metric_name_.+"}[1m] offset 1m)) > 80
Run Code Online (Sandbox Code Playgroud)
然后,您可能希望在检测到跌落后保持一段时间的警报。在这种情况下,您必须使用子查询或记录规则(此处命名drop_rate_percent):
rules:
- record: metric_name_rate
expr: sum(rate({__name__=~"metric_name_.+"}[1m])) by(grouping)
- record: drop_rate_percent
expr: -100 * delta(metric_name_rate[1m]) / (metric_name_rate offset 1m)
- alert: SteepDrop
expr: max_over_time(drop_rate_percent[15m]) > 80
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |