【问题标题】:How can I query only one instance of a label?如何仅查询标签的一个实例?
【发布时间】:2020-12-10 10:35:23
【问题描述】:

假设我有以下指标,我只对 labelTwo 的值感兴趣,这对于所有这三个指标都是相同的。

metric1{labelOne="foo",labelTwo="barfoo"}
metric1{labelOne="bar",labelTwo="barfoo"}
metric1{labelOne="foobar",labelTwo="barfoo"}

如果我查询metric1{labelTwo="barfoo"},那么我会得到这三个。我如何查询才能只取回其中一个?

对于某些情况,我正在 Grafana 中编写 Prometheus 查询并显示与 labelTwo 相关的一些数据:

metric1{labelOne=~"$labelOne",labelTwo=~"labelTwo"}

问题是查询返回所有三个,所以当我真的只对labelTwo="barfoo" 感兴趣时,我会在仪表板上看到重复的可视化。我想查询这样我只能得到labelTwo 的一个实例。

【问题讨论】:

  • 为什么不把labelOne设置成一个固定值?
  • 标签是动态的,所以我不知道如何修复labelOne
  • 对不起,我还是不明白。如果您只想查看 1 个时间序列而不是 3 个,则要么必须进行过滤,以便最终得到一个序列,要么将它们聚合在一起,例如使用 sum()avg(),通常。还有像topk 这样的功能,但是如果不了解您的用例,人们就无法向您推荐正确的东西
  • 你是对的。我尝试了avg by (labelTwo) (metric1) 之类的东西,得到了我想要的东西。如果您想写一个答案,我可以将其标记为已接受。

标签: prometheus grafana


【解决方案1】:

如果您只想查看 1 个时间序列而不是 3 个,您要么必须进行过滤,以便最终得到一个序列,要么通常将它们聚合在一起,例如使用 sum() 或 avg()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2019-01-30
    • 2015-02-21
    • 2018-05-28
    • 2021-07-07
    • 1970-01-01
    • 2023-02-07
    相关资源
    最近更新 更多