将Promieus中其他两个MIB变量的MIB变量标签连接到另一个查询结果

时间:2019-06-06 10:19:59

标签: grafana prometheus

我们遇到一种情况,我想向另一个查询添加MIB变量标签。这另一个查询为我提供了我想要的值结果,但是我需要从第一个变量添加标签,然后再根据需要对它们进行排序(例如,就像我们使用 instance 标签)。

例如

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

variable2 {警报,环境,索引,实例}

例如,在这里我想获取两者的索引,并以某种方式添加所需的标签 我尝试了以下查询,但在给我两个带有标签的变量但未将它们串联在一起后,它们却没有起作用,所以我的问题是是否有可能将它们串联在一起?

查询示例:

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

预先感谢您:)。

1 个答案:

答案 0 :(得分:0)

为了说明如何合并两个指标中的标签标签,我将举一个常见案例:

  • 指标value{instance="foo",a_label="bar"} 42
  • 一个 info 指标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() keyword的参数指定匹配信息的标准,group_left() operator的参数指定要提取的标签。

可能要提取的指标不具有值1。在这种情况下,您可以将bool modifier与始终为true的比较一起使用以获取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