prometheus relabel_configs


https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
relabel_configs :允許在采集之前對任何目標及其標簽進行修改 重新標簽的意義? • 重命名標簽名 • 刪除標簽 • 過濾目標 action:重新標簽動作 • replace:默認,通過regex匹配source_label的值,使用replacement來引用表達式匹配的分組 • keep:刪除regex與連接不匹配的目標 source_labels • drop:刪除regex與連接匹配的目標 source_labels • labeldrop:刪除regex匹配的標簽 • labelkeep:刪除regex不匹配的標簽 • hashmod:設置target_label為modulus連接的哈希值source_labels • labelmap:匹配regex所有標簽名稱。然后復制匹配標簽的值進行分組,replacement分組引用(${
1},${2},…)替代

 

Prometheus的Relabeling機制

在Prometheus所有的Target實例中,都包含一些默認的Metadata標簽信息。可以通過Prometheus UI的Targets頁面中查看這些實例的Metadata標簽的內容:

 

 

默認情況下,當Prometheus加載Target實例完成后,這些Target時候都會包含一些默認的標簽

  • __address__:當前Target實例的訪問地址<host>:<port>
  • __scheme__:采集目標服務訪問地址的HTTP Scheme,HTTP或者HTTPS
  • __metrics_path__:采集目標服務訪問地址的訪問路徑
  • __param_<name>:采集任務目標服務的中包含的請求參數

一般來說,Target以__作為前置的標簽是在系統內部使用的,因此這些標簽不會被寫入到樣本數據中。不過這里有一些例外,例如,我們會發現所有通過Prometheus采集的樣本數據中都會包含一個名為instance的標簽,該標簽的內容對應到Target實例的__address__。 這里實際上是發生了一次標簽的重寫處理。

這種發生在采集樣本數據之前,對Target實例的標簽進行重寫的機制在Prometheus被稱為Relabeling。

  - job_name: 'jenkins'
    scheme: http
    basic_auth:
      username: admin
      password: Kxqv!fada2f
    static_configs:
    - targets: ['47.51.12.12:61921']
      labels:
        afasd: bj
        zcxvzx: afd

 

 

scrape_configs:
  - job_name: 'bj'
    static_configs:
    - targets: ['localhost:9090']
    relabel_configs:
    - action: replace
      source_labels: ['job']
      regex: (.*)
      replacement: $1
      target_label: idc

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM