Prometheus Relabel
Relabel 概述 如果你把 Prometheus 想象成一个正在收集信息的侦探,那么 Relabeling 就是这位侦探在收集信息(指标/Metrics)之前或之后,对这些信息的“身份标签”进行修改、添加或删除的操作。 简单来说,Relabeling 的核心目的就是控制和修改你的指标上的标签 (Labels)。 核心目的 控制抓取 (Service Discovery & Filtering):决定哪些指标应该被抓取 (Scrape),哪些应该被忽略。 标准化标签 (Normalization):将那些混乱、不规范或冗余的标签转换成你想要的样子。 丰富信息 (Enrichment):添加有用的元数据(如集群名、环境名)到指标上。 通俗比喻 想象你是一家大公司的邮件分拣员。 概念 邮件分拣的比喻 Prometheus Relabeling 原始地址 信封上写着“王小姐,住在 3 号楼 101 室” 服务发现(Service Discovery)提供的原始标签(如 __address__=10.1.1.5:8080, __meta_kubernetes_pod_name=myapp-7b4d-1234) Relabeling 规则 “把所有写着‘3 号楼 101 室’的,都改成‘A 区域研发部’,然后把所有发件人是‘老李’的邮件都扔掉。” 配置文件中的 relabel_config 块 新标签 邮件上贴了新标签:“区域: A 区域研发部” 最终抓取到的指标上的新标签(如 service=myapp, cluster=prod-asia) Relabel 流程 relabel_configs 和 metric_relabel_configs 是 Prometheus 配置中两个非常重要但作用阶段不同的配置块,它们的关系和先后顺序可以概括如下: 1. 它们的关系:作用于不同的阶段 配置块 作用对象 作用阶段 目的 relabel_configs 目标 (Targets) 服务发现 (Service Discovery) 之后,实际抓取 (Scrape) 之前。 用于修改目标的地址、端口,或为目标添加/删除/修改标签(例如 instance, job 等),以决定 是否抓取 该目标。 metric\_relabel\_configs 指标 (Metrics) 实际抓取 (Scrape) 之后,存储 (Storage) 之前。 用于修改抓取到的指标的名称或标签(例如 code, method 等),以决定 是否保留 该指标。 简单来说: ...