【问题标题】:How to count over threshold metrics from range vector in PromQL (Prometheus)如何从 PromQL (Prometheus) 中的范围向量计算阈值指标
【发布时间】:2020-06-29 03:45:56
【问题描述】:

我定义了latency 可以查询为标量的指标,如下所示:

latency{name="Controller/products/show",percentiles="95"}   0.9935112

然后,我进行了查询。输出是一个范围向量。

latency{name="Controller/products/show",percentiles="95"}[10m]

输出:

element:
latency{name="Controller/products/show",percentiles="95"}

value:
0.9429009 @1584497778.164
0.9150374 @1584497838.164
0.9085548 @1584497898.164
0.9006939 @1584497958.164
0.9390876 @1584498018.164
0.9593425 @1584498138.164
0.96289706 @1584498198.164
0.98113775 @1584498258.164
0.9935112 @1584498318.164

我想从向量范围值中计算0.95 值。

例如,从上面的向量范围值中获取4

有人有解决办法吗?

【问题讨论】:

    标签: prometheus promql


    【解决方案1】:

    Prometheus subquery 可用于此任务:

    count_over_time((latency{name="Controller/products/show",percentiles="95"} > 0.95)[10m:50s])
    

    请注意,冒号后面的 step 值(上例中的 50s)必须小于所选指标的抓取间隔,因为 Prometheus 使用配置的 step 在常规点处计算括号内的查询它们之间的间隔。

    【讨论】:

    • 谢谢!我将我的 Prom 升级到 2.7.0 并询问您的建议。我得到了一个想要的值。我将深入了解子查询。
    猜你喜欢
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 2022-01-22
    • 2017-12-13
    • 1970-01-01
    • 2022-09-26
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多