# source_labels從指定標籤中匹配值。並將值串聯
# 使用設定的分隔符並與設定的正規表示式匹配
# 用於替換、保留和丟棄操作。
[ source_labels: '[' <labelname> [, ...] ']' ]
# 串聯源標籤值之間的分隔符,預設;
[ separator: <string> | default = ; ]
# 在替換操作中將結果值寫入的標籤。
# 對於替換操作,它是強制性的。Regex捕獲組可用。
[ target_label: <labelname> ]
# 與提取值匹配的正規表示式。
# 當actions等於replace, keep, drop, labelmap,labeldrop and labelkeep時使用
[ regex: <regex> | default = (.*) ]
# 獲取源標籤值的雜湊值的模數。
[ modulus: <int> ]
# 如果正規表示式匹配,則對其執行正規表示式替換的替換值。
[ replacement: <string> | default = $1 ]
# 基於正規表示式匹配要執行的操作。
[ action: <relabel_action> | default = replace ]
<relabel_action>欄位用於定義重新標記的行為,其可用取值有:
1. 替換標籤值
2. 刪除指標:該處的每個指標名稱對應一個target
3. 建立或刪除標籤
- job_name: 'nodes'
consul_sd_configs:
- server: "monitor.example.com:8500"
tags:
- "nodes"
refresh_interval: 2m
scrape_interval: 15s
relabel_configs:
- source_labels:
- __scheme__
- __address__
- __metrics_path__
regex: (http|https)(.*)
separator: ""
target_label: endpoint
replacement: ${1}://${2}
action: replace
curl -XPOST monitor.example.com:9090/-/reload
- regex: (__meta_consul_service_)(.*)
replacement: node_${2}
action: labelmap
curl -XPOST monitor.example.com:9090/-/reload
- regex: ^job.*
action: labeldrop
./promtool check config prometheus.yml
curl -XPOST monitor.example.com:9090/-/reload
- source_labels:
- node_port
regex: 9.+1
action: keep
scrape_configs:
- job_name: 'nodes'
consul_sd_configs:
- server: "monitor.example.com:8500"
tags:
- "nodes"
refresh_interval: 2m
scrape_interval: 15s
relabel_configs:
- source_labels:
- __scheme__
- __address__
- __metrics_path__
regex: (http|https)(.*)
separator: ""
target_label: endpoint
replacement: ${1}://${2}
action: replace
- regex: (__meta_consul_service_)(.*)
replacement: node_${2}
action: labelmap
- regex: job
action: labeldrop
- source_labels:
- node_port
regex: 9.+1
action: keep
- job_name: 'nodes'
consul_sd_configs:
- server: "monitor.example.com:8500"
tags:
- "nodes"
refresh_interval: 2m
scrape_interval: 15s
metric_relabel_configs:
- source_labels: [__name__]
regex: go_info
action: drop
curl -XPOST monitor.example.com:9090/-/reload