如果log_error_count至少1在过去一分钟内增加了,我想收到警报。
所以最初我的查询看起来像
ALERT BackendErrors
IF rate(log_error_count[1m]) > 0
FOR 1s
...
Run Code Online (Sandbox Code Playgroud)
但后来我尝试使用普罗米修斯仪表板对图表进行理智检查。
使用查询
log_error_count
Run Code Online (Sandbox Code Playgroud)
我的图表看起来像
当我查看带有查询的图表时
rate(log_error_count[2m])
Run Code Online (Sandbox Code Playgroud)
我的图表看起来像
事实上,我也试过函数irate、changes、 和delta,它们都变为零。
为什么速率为零,我的查询需要看起来像什么才能在计数器增加一次时发出警报?
我对planetlabs/draino 也有类似的问题:
我希望能够检测到它何时耗尽节点。
(不幸的是,他们继承了对日志记录有意义的极简日志记录策略,而转向了没有意义的指标...)
draino_pod_ip:10002/metrics 端点的网页完全是空的...不存在,直到第一次耗尽发生...
我的需求稍微难以检测,当 value = 0 时(也称为 pod 重新启动),我必须处理指标不存在的情况。
我必须检测从不存在 -> 1 和 n -> n+1 的转变。
这就是我想到的,请注意我检测到的指标是一个整数,我不确定这对于小数来说是如何值的,即使它需要根据您的需求进行调整,我认为它可能会帮助您指出正确的方向:
(absent(draino_cordoned_nodes_total offset 1m) == 1 and count(draino_cordoned_nodes_total) > -1)
Run Code Online (Sandbox Code Playgroud)
^ 当指标从“不存在”切换到“存在”时,会创建一个值为 1 的 blip
((draino_cordoned_nodes_total - draino_cordoned_nodes_total offset 1m) > 0)
Run Code Online (Sandbox Code Playgroud)
^ 当它从 n -> n+1 增加时,会创建一个值为 1 的 blip
结合2:
(absent(draino_cordoned_nodes_total offset 1m) == 1 and count(draino_cordoned_nodes_total) > -1) or ((draino_cordoned_nodes_total - draino_cordoned_nodes_total offset 1m) > 0)
Run Code Online (Sandbox Code Playgroud)
^ 将它们组合在一起使我能够检测到 Grafana 图上单个 1 的变化,我认为这就是您所追求的。
| 归档时间: |
|
| 查看次数: |
6290 次 |
| 最近记录: |