深色模式
relabel_configs 标签重写
抓取前(relabel_configs)和抓取后(metric_relabel_configs)改标签,是高级配置的必备技能。
适用环境
- 已配置 scrape_configs
- 需要统一标签命名或剔除无用标签
bash
# 查看当前 target 的标签来源
curl -s 'http://localhost:9090/api/v1/targets' | head -c 4001
2
2
操作步骤
1. 重写 job 标签
默认 job 来自 job_name,可用 relabel_configs 覆盖:
yaml
- job_name: node
static_configs:
- targets: ['192.168.1.10:9100']
relabel_configs:
- source_labels: [__address__]
target_label: job
replacement: 'node-prod'1
2
3
4
5
6
7
2
3
4
5
6
7
2. 从地址提取主机名
yaml
- source_labels: [__address__]
regex: '(.*):9100'
target_label: host
replacement: '$1'1
2
3
4
2
3
4
3. 只保留指定标签(降基数)
yaml
metric_relabel_configs:
- regex: 'env|job|instance'
action: labelkeep1
2
3
2
3
验证
promql
# 看标签是否已生效
up{job="node-prod"}1
2
2
常见坑
address 是内部标签
以双下划线开头的标签(__address__、__scheme__)抓取后会被删除,仅用于 relabel 过程。
metric_relabel_configs 才影响存储
relabel_configs 影响“是否抓、抓什么 URL”;metric_relabel_configs 才决定“存哪些时间序列”。