获取给定范围与最后一个值 = 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 之间的值的主要内容,如果未能解决你的问题,请参考以下文章

试图根据给出错误值的范围获取最后一个单元格地址

随机数生成器不会使用输入字段中的值生成给定范围内的预期数字[重复]

js 截取给定字符后面的字符

枚举与集合

枚举类型与集合类型

在两个范围之间查找