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

如何在Prometheus relabel_configs中用正则提取路径字段?

解决Prometheus relabel提取标签字段的问题

针对你的需求,我调整了relabel配置,能直接提取最后一个字段service和倒数第二个字段中的数字1,修正后的配置如下:

relabel_configs:
  # 提取groupname最后一个字段作为service标签
  - source_labels: [groupname]
    target_label: service
    regex: '.+/(.+)$'
    replacement: '${1}'
  # 提取倒数第二个字段中的数字作为num标签
  - source_labels: [groupname]
    target_label: num
    regex: '.+/([^/]+)\.(\d+)/[^/]+$'
    replacement: '${2}'

配置说明

  • 提取service:正则.+/(.+)$会匹配任意字符直到最后一个/,捕获后面的所有内容(也就是最后一个字段),通过${1}将其赋值给service标签。相比你原来的配置,这个正则不依赖固定前缀路径,适配性更强,同时去掉了多余的引号转义符号,避免匹配失败。
  • 提取数字:正则.+/([^/]+)\.(\d+)/[^/]+$精准定位到倒数第二个字段,捕获其中的数字部分(第二个分组${2}),直接赋值给num标签,省去了中间的tmp标签步骤,更简洁高效。

原配置问题分析

  1. 第一个relabel的正则里包含"(引号转义字符),但你的groupname值本身没有引号,导致正则无法匹配成功。
  2. 提取数字的步骤中,tmp标签的正则[^/]+\d没有设置捕获分组,所以${1}为空,后续自然无法提取到数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:42:06