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

如何通过正则从Prometheus指标名提取应用ID并添加为标签

解决方案:从Prometheus指标名提取App ID并添加为标签

没问题!你完全可以通过Prometheus的metric_relabel_configs实现这个需求——因为我们要直接修改指标名称和添加指标级标签,这正是metric_relabel_configs的设计场景(而relabel_configs主要处理抓取阶段的Target标签,不适合这里)。

下面是针对你的指标格式metrics-app-123456-spark-whatever-1的具体配置:

metric_relabel_configs:
  # 1. 从指标名提取App ID,添加为app标签
  - source_labels: [__name__]
    # 正则匹配指标名,捕获app ID部分(123456)
    regex: ^metrics-app-(.*)-spark-.*$
    target_label: app
    # 用捕获到的App ID作为标签值
    replacement: $1
    action: replace

  # 2. 重命名指标名,移除app相关前缀
  - source_labels: [__name__]
    # 正则匹配指标名,捕获后半部分(whatever-1)
    regex: ^metrics-app-.*-spark-(.*)$
    # 替换指标名本身(__name__是Prometheus内置的指标名标签)
    target_label: __name__
    # 拼接新的指标名
    replacement: metrics-spark-$1
    action: replace

配置解释:

  • source_labels: [__name__]:指定我们要处理的数据源是指标名称(__name__是Prometheus自动为所有指标添加的内置标签,对应指标本身的名字)。
  • regex:通过正则表达式精准匹配指标名格式,用括号()标记需要捕获的内容:
    • 第一个配置里的(.*)捕获App ID(比如123456);
    • 第二个配置里的(.*)捕获指标名的后半段(比如whatever-1)。
  • target_label:定义要修改的目标标签——第一个配置是新建app标签,第二个配置是修改指标名对应的__name__标签。
  • replacement: $1:用正则捕获到的第一个分组内容($1)替换目标标签的值,实现提取和重命名。
  • action: replace:执行替换/添加标签的动作,这是最常用的relabel动作之一。

配置生效后,你的指标就会从metrics-app-123456-spark-whatever-1变成metrics-spark-whatever-1{app="123456"},完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:50:22