Grafana:结合来自两个prometheus出口商的两个查询

问题描述 投票:0回答:1

我有两个出口商用于向prometheus提供数据 - node exporterelasticsearch exporter。我正在尝试将两个导出器的源组合成一个查询,但不幸的是在图中得到“无数据点”。

每个系列都成功显示数据:

  1. elasticsearch_jvm_memory_max_bytes {cluster =“$ cluster”,name =〜“$ node”} enter image description here
  2. node_memory_MemTotal {name =〜“$ node”} enter image description here

当我尝试从彼此中减去两个系列时,这就是结果:

  1. node_memory_MemTotal {name =〜“$ node”} - elasticsearch_jvm_memory_max_bytes {cluster =“$ cluster”,name =〜“$ node”} enter image description here

我在这里错过了什么?

谢谢。

grafana prometheus
1个回答
1
投票

你在这里尝试的减法比在开头读到的要复杂得多。在-运算符的两侧是可以导致一个或多个时间序列的查询。因此请求的操作如下:在左侧执行查询并获得一个或多个时间序列的结果。时间序列表示度量标准及其所有标签及其值的唯一组合。然后执行右侧的第二个查询,这也会产生一个或多个时间序列。现在计算结果,仅使用具有匹配标签组合的那些组合。

对于您的示例,这意味着来自node_exporterelasticsearch_exporter的指标具有不同的标签名称(甚至标签的不同值)。如果两侧都没有组合,您将看到空结果。有关如何应用运算符的详细信息,请参阅the prometheus docs

要解决您的问题,您可以执行以下操作:

  • 自行检查左侧和右侧的指标
  • 评估是否有可以忽略的其他标签
  • 查看是否有匹配的好标签(例如,实例/节点/主机名)
  • 在所需的一侧使用ignoring(a,b,c)来减少多余的尺寸,例如: job
© www.soinside.com 2019 - 2024. All rights reserved.