获取给定范围与最后一个值 = 0 之间的值
Posted
技术标签:
【中文标题】获取给定范围与最后一个值 = 0 之间的值【英文标题】:Get the values between a given range with last value = 0 【发布时间】:2021-11-16 21:45:10 【问题描述】:我正在尝试从 Victoria DB 中获取一些指标,特别是一些监控可用墨水量的打印机指标。
我想要做的是提取达到 0(墨水完成)并从 100(满墨水)开始的指标。
在对 PromQL 进行了一些研究后,我发现:
-
使用
delta()
为仪表指定范围。
使用min()
指定最小值
通过运算符*
将两者结合起来(类似于SQL 中的连接)。
最后,我有以下查询:
(delta(printer_ink_level_\%)>99) * (min(printer_ink_level_\%) < 1)
然而这并没有返回我想要的。
我在这里错过了什么?
提前致谢。
【问题讨论】:
当您执行< 1
时,您总是乘以零。为什么要这样做?
【参考方案1】:
您可能需要来自 MetricsQL 的 ascent_over_time 函数。
例如,以下查询将返回时间序列,在最后一天至少增加了 100:
ascent_over_time(__name__="printer_ink_level_%"[1d]) >= 100
如果您需要获取在给定时间段内具有零值的时间序列,请查看min_over_time 和count_eq_over_time MetricsQL 函数。
【讨论】:
以上是关于获取给定范围与最后一个值 = 0 之间的值的主要内容,如果未能解决你的问题,请参考以下文章