如何仅对Prometheus特定指标B保留指定标签而不影响整个job A?
针对特定Metric的Prometheus Relabeling配置方案
要实现仅对job 'A'中的metric 'B'保留指定标签(D、E、F),同时不影响该job下的其他指标,你需要利用Prometheus relabel规则的条件匹配能力,先筛选出目标metric,再执行标签保留操作。
具体配置示例
在job 'A'的抓取配置中添加如下relabel_configs规则:
scrape_configs: - job_name: 'A' # 其他抓取配置(比如targets、metrics_path等) relabel_configs: # 仅对metric B保留指定标签,其余标签移除 - source_labels: [__name__] regex: B action: labelkeep regex: ^(D|E|F)$
规则解释
source_labels: [__name__]:指定匹配的源标签为Prometheus内置的__name__(对应metric的名称)regex: B:仅匹配metric名称为'B'的指标序列,只有符合这个条件的指标才会执行后续的标签操作action: labelkeep:该动作表示只保留符合下一个regex规则的标签,其余标签全部移除regex: ^(D|E|F)$:精确匹配需要保留的标签D、E、F,确保只有这三个标签被保留
注意事项
- Prometheus的metric名和标签名是大小写敏感的,确保配置中的名称和实际指标完全一致
- 如果需要保留Prometheus的内置标签(比如
job、instance),需要把它们加入到regex中,例如:regex: ^(job|instance|D|E|F)$,否则这些内置标签会被一并移除 - 这条规则必须放在job 'A'的
relabel_configs下,而非全局配置,确保仅作用于该job的指标
内容的提问来源于stack exchange,提问作者Fynn Dröges
相关产品推荐
相关产品推荐

