You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus relabel配置如何合并两个来源标签为同一cib_syscode

问题根因

Prometheus的relabel规则按从上到下的顺序执行,你当前的配置默认匹配所有值(包括空值),会出现覆盖问题:

  • 当Pod仅带syscode标签时,第一条规则给cib_syscode赋值成功后,第二条规则会匹配到空的__meta_kubernetes_pod_label_cib_syscode,直接把已有的cib_syscode值覆盖为空。
  • 当Pod仅带cib_syscode标签时,第一条规则匹配空值不执行,第二条规则可正常赋值。
正确配置

给每条规则加上非空匹配规则regex: (.+),只有对应来源标签存在且有值时才会执行替换,不会出现空值覆盖的情况。如果两个标签同时存在时优先取原生cib_syscode的值,把cib_syscode的匹配规则放在后面即可:

- job_name: ncr
  honor_labels: true
  scrape_interval: 30s
  scrape_timeout: 30s
  metrics_path: /metrics
  scheme: http
  kubernetes_sd_configs:
  - role: pod
  relabel_configs:
  # 匹配syscode标签,仅标签有值时赋值
  - source_labels: [__meta_kubernetes_pod_label_syscode]
    regex: (.+)
    target_label: cib_syscode
    replacement: ${1}
    action: replace
  # 匹配原生cib_syscode标签,有值时覆盖之前的赋值,优先级更高
  - source_labels: [__meta_kubernetes_pod_label_cib_syscode]
    regex: (.+)
    target_label: cib_syscode
    replacement: ${1}
    action: replace

如果需要syscode优先级更高,调换两条规则的顺序即可。和默认值一致的separator参数可以直接省略。

内容的提问来源于stack exchange,提问作者Leslie__Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:06:01