【问题标题】:How can I remove a label and then rename another one to replace it?如何删除标签然后重命名另一个标签以替换它?
【发布时间】:2021-11-08 15:51:19
【问题描述】:

我尝试在 PromQL 表达式中组合两个不同的指标来编写警报。其中一个指标,比如is_up 表示节点是否启动。另一个指标is_active 表示该节点上是否正在运行。

他们每个人都有可以用来比较它们的标签,但是标签在每个人身上被称为不同的东西。所以在is_up 我们有label_a="node_id"is_active 我们有label_b="node_id" 其中node_ids 是相同的。

如果标签名称相同,例如label,我可以编写如下查询:

count(is_up) by (label) unless count(is_active) by (label)

但这是不可能的。我无法在全局配置中重新标记它,因为 is_up 上已经有一个名为 label_b 的标签,但它具有不同的格式:/

所以我目前的想法是(使用 PromQL,所以在评估时间)从 is_up 中删除 label_b 并将标签 label_a 重命名为 label_b

我之前看到过这个主题的答案:https://stackoverflow.com/a/60894489/16546473,但我不确定它是否适用于我,因为它只是在谈论重命名标签,但我需要

  1. is_up 中删除label_b,然后
  2. is_up中的label_a重命名为label_b,以便可以直接与is_active中的label_b进行比较

让我知道这是否有意义

【问题讨论】:

    标签: prometheus promql prometheus-alertmanager prometheus-operator prometheus-node-exporter


    【解决方案1】:

    我是这样管理的:

    sum without (label_a) (label_replace(sum(is_up) without (label_b), "label_b", "$1", "label_a", "(.*)"))
    

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 2013-04-23
      • 2015-06-24
      • 2011-10-28
      • 2015-09-19
      • 1970-01-01
      • 2014-06-19
      相关资源
      最近更新 更多