如何为Prometheus主实例自动添加cluster:"primary"标签?
解决方法
要给主Prometheus实例自身采集的指标自动添加cluster:"primary"标签,同时不覆盖从辅助实例通过remote_write传入的已有cluster标签,你可以通过以下两种简洁方式配置:
方式一:全局指标重标记(最简便)
在主实例的Prometheus配置中添加全局metric_relabel_configs,该规则仅作用于主实例自身采集的指标(通过remote_write写入的指标不会经过这个流程),且仅当指标原本没有cluster标签时才添加目标标签,避免冲突:
global: scrape_interval: 15s evaluation_interval: 15s # 注意:不要在这里设置external_labels的cluster字段,否则会覆盖所有传入指标的cluster标签 # 全局配置:为主实例自采集指标添加cluster标签 metric_relabel_configs: - target_label: cluster replacement: "primary" action: replace source_labels: [cluster] regex: "" # 匹配cluster标签不存在的情况
方式二:针对单个采集任务添加标签
如果需要更精细的控制(比如仅给特定采集任务加标签),可以在每个scrape_config的relabel_configs中单独添加规则:
scrape_configs: - job_name: 'kubernetes-apiservers' # 原有采集配置(比如K8s服务发现、TLS配置等) relabel_configs: # 原有relabel规则... # 新增:给该任务采集的指标添加cluster标签 - source_labels: [] target_label: cluster replacement: "primary" - job_name: 'kubernetes-nodes' # 原有采集配置 relabel_configs: # 原有relabel规则... - source_labels: [] target_label: cluster replacement: "primary"
验证与生效
配置完成后,通过以下方式让配置生效:
- K8s环境中:滚动重启主Prometheus Pod,或通过
curl -X POST http://prom-primary:9090/-/reload热重载配置 - 验证:在主实例的查询界面执行
up{cluster="primary"},应能看到主实例自身采集的所有up指标;执行up{cluster="prom-aux-01"}则能看到辅助实例传入的指标。
内容的提问来源于stack exchange,提问作者dash1e
相关产品推荐
相关产品推荐

