天天看點

Prometheus - Relabel

通過對标簽的重命名進行重整操作,便于統一化管理或者服務更新前後管理。

原始資料:

cat targets/node-exporter.yml

- targets:
  - "172.20.31.195:9100"
  labels:
    __os__: "linux"
    __release__: "redhat"
- targets:
  - "172.20.31.196:9100"
  labels:
    __os__: "linux"
    __release__: "centos"
- targets:
  - "172.20.31.197:9100"
  labels:
    __os__: "linux"
    __release__: "centos"      
Prometheus - Relabel

replace: 對原有的标簽進行更名

scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
    relabel_configs:
    - source_labels:
      - "__os__"
      regex: "(.*)"
      target_label: "os"
      action: replace
      replacement: "$1"      
Prometheus - Relabel

replace-separator: 對字段進行合并處理

scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
    relabel_configs:
    - source_labels:
      - "__os__"
      - "__release__"
      separator: "-"
      regex: "(.*)"
      target_label: "os_release"
      action: replace
      replacement: "$1"      
Prometheus - Relabel

keep: 滿足特定條件的執行個體進行采集,其他的不采集。

scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
    relabel_configs:
    - source_labels:
      - "__release__"
      regex: "redhat"
      action: keep      
Prometheus - Relabel

drop: 滿足特定條件的執行個體不采集,其他的采集。

scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
    relabel_configs:
    - source_labels:
      - "__release__"
      regex: "redhat"
      action: drop      
Prometheus - Relabel

labelkeep: 對抓取的執行個體特定标簽進行保留,其他标簽删除。

scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
    relabel_configs: 
    - source_labels:
      - "__os__"
      regex: "(.*)"
      target_label: "os"
      action: replace
      replacement: "$1"
    - source_labels:
      - "__release__"
      regex: "(.*)"
      target_label: "release"
      action: replace
      replacement: "$1"
    - regex: "jobs"
      action: labelkeep      

labeldrop: 對抓取的執行個體特定标簽進行删除。

scrape_configs:
  - job_name: 'node-exporter'
    file_sd_configs:
    - files:
      - targets/node-exporter.yml
      refresh_interval: 1m
    relabel_configs: 
    - source_labels:
      - "__os__"
      regex: "(.*)"
      target_label: "os"
      action: replace
      replacement: "$1"
    - source_labels:
      - "__release__"
      regex: "(.*)"
      target_label: "release"
      action: replace
      replacement: "$1"
    - regex: "os"
      action: labeldrop      
Prometheus - Relabel

hashmod:将target_label設定成source_label的modulus配置的hash值;

labelmap:将regex比對到的所有标簽的名稱配置成新的标簽,值配置成新标簽的值;

繼續閱讀