2017-10-11 165 views
2

因为Prometheus topk returns more results than expected,并且由于https://github.com/prometheus/prometheus/issues/586需要通过https://github.com/grafana/grafana/issues/7664尚未提供的客户端处理,所以我试图寻求一种不同的近期解决方法我的类似问题。按公制值过滤prometheus结果,而不是按标签值

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

我可以想办法写普罗米修斯查询筛选基于一个标签值数据点,但我还没有能够找到一种方法来告诉普罗米修斯只有在返回时间序列数据点度量值的值满足一定条件。在我的情况下,我想过滤一个大于零的值。

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

回答

2

过滤使用comparison operators完成,例如x > 0

+0

是的,我可以找到方法在示例中引用标签的值来代替x,但是我还没有弄清楚如何引用度量标准本身的值。 –

+0

例如,考虑名为items_in_queue的度量标准,并带有标签queue_name。我想要显示每个队列中有多少个项目的图形,但是如果队列中的项目在我的图形的整个持续时间内没有任何项目,我不希望其名称显示在图例中。如果我的大部分队列大部分时间都是空的,我不想在每个样本的结果中显示不同的深度队列名称集合。 查询看起来像什么来显示我topk items_in_queue,但只有当items_in_queue> 0时才会显示?我如何参考度量而不是标签? –

+0

我想它会看起来像 'items_in_queue {_something_> 0}' 但我用什么来代替_something_? –