從新標記是一個功能強大的工具,能夠在目標的標籤集被抓取以前重寫它,每一個採集配置能夠配置多個重寫標籤設置,並按照配置的順序來應用於每一個目標的標籤集。node
目標從新標籤以後,以__開頭的標籤將從標籤集中刪除的。linux
若是使用只須要臨時的存儲臨時標籤值的,可使用_tmp做爲前綴標識。服務器
在測試前,同步下配置文件以下。ide
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_export' static_configs: - targets: - deliver-database:9100 - basic-database:9100 - ETL:9100 - APP3:9100 - APP5:9100 - APP4:9100 - QCD1:9100 - QCD2:9100 - QCA1:9100
以上的機器,我已經在 hosts 作好解析了。工具
此時若是查看target信息,以下圖。測試
這些都是默認的 label ,由於系統生成的 label 都是以__
開頭的,目標從新標籤以後,以__
開頭的標籤將從標籤集中刪除的。lua
好比將全部 labels 中的 instance 的 9100 端口去掉code
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_export' static_configs: - targets: - deliver-database:9100 - basic-database:9100 - ETL:9100 - APP3:9100 - APP5:9100 - APP4:9100 - QCD1:9100 - QCD2:9100 - QCA1:9100 relabel_configs: - source_labels: - "__address__" regex: "(.*):9100" target_label: "instance" action: replace replacement: "$1"
重啓服務查看 target 信息以下圖:blog
說下上面的配置:get
__address__
instance
__address__
的值,"(.*):9100"
表明匹配這個表情9100前部分好比只採集所匹配名稱爲 APP* 的機器。
修改配置文件以下
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_export' static_configs: - targets: - deliver-database:9100 - basic-database:9100 - ETL:9100 - APP3:9100 - APP5:9100 - APP4:9100 - QCD1:9100 - QCD2:9100 - QCA1:9100 relabel_configs: - source_labels: - "__address__" regex: "APP.*" action: keep
重啓以後查看 target 以下圖,能夠看到只採集 APP 開頭的服務器。
在上面的基礎上,修改 action 爲 drop。
重啓以後,target 以下圖
action 爲 drop,其實和 keep 是類似的, 不過是相反的, 只要 source_labels 的值匹配APP.*
的實例不會被採集。 其餘的實例會被採集。
配置文件修改成以下
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_export' static_configs: - targets: - deliver-database:9100 - basic-database:9100 - ETL:9100 - APP3:9100 - APP5:9100 - APP4:9100 - QCD1:9100 - QCD2:9100 - QCA1:9100 labels: os: "linux" relabel_configs: - source_labels: - "__address__" regex: "(.*):9100" target_label: "instance" action: replace replacement: "$1"