如何在Prometheus中从weblogic_id指标获取domain标签添加至同前缀指标
从指定指标提取标签并批量添加到同前缀指标的实现方案
完全可以实现这个需求,用Prometheus的metric_relabel_configs就能搞定,核心是通过共享的instance标签关联weblogic_id和其他weblogic_开头的指标,把domain标签传递过去,具体操作步骤和配置示例如下:
- 第一步:暂存
weblogic_id的domain标签
先通过relabel规则,把每个instance对应的domain值暂存到临时标签里,方便后续调用。 - 第二步:为所有
weblogic_前缀指标添加domain标签
针对所有以weblogic_开头的指标,通过instance标签匹配之前暂存的domain值,将其添加为正式标签。
具体配置示例
scrape_configs: - job_name: 'weblogic_monitor' # 此处填写你的WebLogic监控采集配置(如targets等) metric_relabel_configs: # 按instance分组,暂存weblogic_id的domain标签 - source_labels: [__name__, instance, domain] regex: 'weblogic_id;(.*);(.*)' target_label: '__domain_$1' replacement: '$2' # 为所有weblogic_开头的指标添加domain标签 - source_labels: [__name__, instance] regex: 'weblogic_.*;(.*)' target_label: 'domain' replacement: '${__domain_$1}'
关键说明
- 这里用
instance作为关联键,因为weblogic_id和其他同实例的WebLogic指标共享这个标签,确保能准确匹配到对应的domain值。如果你的环境中instance无法唯一对应domain,可以替换为其他具备唯一关联属性的标签。 - 规则顺序很重要:必须先完成
weblogic_id的标签暂存,再执行给其他指标加标签的规则,否则临时标签未生成,无法获取对应值。 - 如果不想给
weblogic_id本身重复添加标签,可以把第二条规则的regex修改为weblogic_(?!id).*;(.*),以此排除weblogic_id指标。
内容的提问来源于stack exchange,提问作者Nirzak
相关产品推荐
相关产品推荐

