【问题标题】:Concatenate MIB variable label to another query result from other two MIB variables in Prometheus将 MIB 变量标签连接到 Prometheus 中其他两个 MIB 变量的另一个查询结果
【发布时间】:2019-10-21 20:29:14
【问题描述】:

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

例如

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

variable2{alert,env, index, instance}

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

查询示例:

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

提前谢谢你:)。

【问题讨论】:

    标签: grafana prometheus


    【解决方案1】:

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

    • 一个指标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() keyword 的参数指定匹配信息的条件,group_left() operator 的参数指定要拉取的标签。

    您要从中提取的指标可能没有值 1。在这种情况下,您可以使用 bool modifier 与始终进行比较以获得 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多