Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grafana 按度量值而不是标签值筛选prometheus结果_Grafana_Prometheus - Fatal编程技术网

Grafana 按度量值而不是标签值筛选prometheus结果

Grafana 按度量值而不是标签值筛选prometheus结果,grafana,prometheus,Grafana,Prometheus,因为,而且因为需要客户端处理,而这还没有通过提供,我正试图寻求一个不同的短期工作来解决我的类似问题 在我的特殊情况下,我想要绘制的大多数度量值在大多数情况下都是零。只有当它们高于零时,它们才有趣 我可以找到编写prometheus查询的方法来根据标签的值过滤数据点,但是我还没有找到一种方法来告诉prometheus仅在度量值满足一定条件时返回时间序列数据点。在我的例子中,我想过滤大于零的值 我可以向prometheus查询添加一个条件,根据度量值过滤数据点吗?如果是,我在哪里可以找到这样做的语法

因为,而且因为需要客户端处理,而这还没有通过提供,我正试图寻求一个不同的短期工作来解决我的类似问题

在我的特殊情况下,我想要绘制的大多数度量值在大多数情况下都是零。只有当它们高于零时,它们才有趣

我可以找到编写prometheus查询的方法来根据标签的值过滤数据点,但是我还没有找到一种方法来告诉prometheus仅在度量值满足一定条件时返回时间序列数据点。在我的例子中,我想过滤大于零的值


我可以向prometheus查询添加一个条件,根据度量值过滤数据点吗?如果是,我在哪里可以找到这样做的语法示例?

过滤是使用完成的,例如
x>0

如果您感到困惑:使用比较运算符进行过滤的结果不是布尔值,而是经过过滤的序列。例如

min(flink_rocksdb_actual_delayed_write_rate > 0)
将显示大于0的最小值

如果您真的想要一个布尔值(或者更确切地说是0或1),请使用类似

sum (flink_rocksdb_actual_delayed_write_rate >bool 0)
这将为您提供非零计数。

这可以通过以下方法解决:


上面的查询将返回过去5分钟内大于0的
度量
数据点的数量。方括号中的第二个ARG必须小于<代码>度量“< /代码>”的擦除间隔。

是的,并且我可以找到方法来引用标签中代替x的值,但是我还没能计算出如何引用度量本身的值。例如,考虑一个名为ITMESSY-IN队列的度量,使用标签队列名称。我想显示每个队列中有多少项的图表,但如果在整个图表期间队列中没有任何项,我不希望其名称显示在图例中。如果我的大多数队列在大多数时间都是空的,我不希望在每个样本的结果中显示不同的零深度队列名称集合。只有当队列中的项目>0时,查询才会显示队列中的topk items\u,这是什么样子的?我如何引用度量而不是标签?我想它看起来像队列中的
items\u{u something\u>0}
但是我应该用什么来代替什么呢?如上所述,
x>0
是一个完整的ProMQ表达式。。。如果我想要一个grafana图,它显示特定主机上所有队列(按主机名称标记)的队列深度时间序列(按队列度量中的项目),但仅显示其队列度量中的项目大于零的队列,则该查询类似于<代码>队列中的项目{host\u name=~“myhost”}>0
。标签值上的过滤器位于
{}
内,基于度量值的过滤器位于
{…}
后。这就是它的工作方式吗?对于其他人:确保在括号中包含两个时间范围,否则会出现错误。我花了一点时间才弄明白。这种过滤也可以通过时间上的
count\u gt\u(度量[5m],0)
函数来执行。
count_over_time((metric > 0)[5m:10s])