通过比较短期与长期变化率来检测 PromQL 中的峰值

问题描述 投票:0回答:1

我想在某些指标的变化率发生剧烈变化时设置警报。 (就像二阶导数)。

这是一个好方法吗?

alert if sum(rate(some_metrics[1m])) - sum(rate(some_metrics[1h])) > threshold

prometheus promql
1个回答
0
投票

我建议评估相对变化而不是绝对变化 - 在这种情况下,单个查询可用于针对变化率差异很大的指标发出警报,而无需调整阈值。

例如,以下查询可用于在最后一分钟

m
counter 的增长率与过去一小时内该计数器的平均增长率相比变化超过 50% 时发出警报。

(
  abs(rate(m[1m]) - rate(m[1h]))
    /
  rate(m[1h])
)
  > 0.5

abs()函数用于处理上一分钟增长率下降超过50%的情况,以及飙升超过50%的情况。

© www.soinside.com 2019 - 2024. All rights reserved.