首页 > 解决方案 > 将 MIB 变量标签连接到 Prometheus 中其他两个 MIB 变量的另一个查询结果

问题描述

我们有一种情况,我想将 MIB 变量标签添加到另一个查询。这个另一个查询给了我想要的值结果,但我需要从第一个变量中添加标签,然后按我想要的对它们进行排序(例如,就像我们使用实例标签一样)。

例如

variable1{alert,env, index, instance, ..., labelneeded}

变量2{警报、环境、索引、实例}

例如,在那里我想获取两者的索引并以某种方式添加我尝试以下查询所需的标签,但在他们给我两个变量及其标签但没有连接在一起之后它们没有工作所以我的问题是如果有一个有可能将它们连接在一起吗?

查询示例:

max by {index, instance} (variable2 * 5) or max(variable2) by (labelneeded, index, instance)

先感谢您 :)。

标签: grafanaprometheus

解决方案


为了解释如何合并来自两个指标的标签标签,我将采用一个常见案例:

  • 价值度量_value{instance="foo",a_label="bar"} 42
  • 信息指标_info{instance="foo",version="1.2.3",another="bar"} 1

信息指标(例如版本、编译器等)的值为 1,以便您可以在指标之间应用运算符:

value * on(instance) group_left(version) info

结果

{instance="foo",a_label="bar",version="1.2.3"} 42

on()关键字的参数指定匹配信息的条件,group_left()运算符的参数指定要提取的标签。

可能会发生您要从中提取的指标没有值 1。在这种情况下,您可以使用带有比较的bool修饰符始终为真以获得 1:

other_metric{instance="foo",baz="void"} 0.5555
value * on(instance) group_left(baz) other_metric != bool NaN

结果

{instance="foo",a_label="bar",baz="void"} 42

推荐阅读