Prometheus處理metrics標籤

Prometheus處理metrics的標籤


Prometheus在拉取exporter的數據之後,會對數據標籤進行編輯,也允許用戶通過relabel_configs對標籤進行處理,包括修改、刪除標籤以及刪除不必要的標籤。

1、配置說明

相關配置具體如下:

scrape_configs: 
 - job_name: 'node'
    static_configs:
    - targets: ['47.95.32.229:9100']
    relabel_configs:
    - source_labels:  '[' <labelname> [, ...] ']'   #從target數據中現有標籤中選擇值,source_label的值使用separator的配置進行連接,當與regex的正則表達式匹配時,進行action中配置的動作,如:替換、保留、刪除等
      separator: <string> | default = ;  #連接source_label中的多個標籤,默認值是";"
      target_label: <labelname>   #目標標籤,當action配置爲replace時,target_label是必須的
      regex: <regex> | default = (.*) #通過正則表達式匹配提取值
      modulus: <uint64>   #獲取source_labels的哈希值模數
      replacement: <string> | default = $1  #如果正則表達式匹配到值的話,則用當前值進行替換
      action: <relabel_action> | default = replace #對匹配到的標籤進行的操作,

其中,<relabel_action>包含以下幾種操作:

  • replace:使用replacement的值替換被regex正則匹配到source_label;
  • keep:保留被匹配到的標籤的metric,刪除未被匹配到標籤的 metric;
  • drop:刪除被匹配到的標籤的metric,保留未被匹配到標籤的metric;
  • hashmod:將target_label設置成source_label的modulus配置的hash值;
  • labelmap:將regex匹配到的所有標籤的名稱配置成新的標籤,值配置成新標籤的值;
  • labeldrop:將符合規則的標籤刪除,保留未被匹配的標籤;
  • labelkeep:將符合規則的標籤保留,刪除未被匹配的標籤。

2. 給metrics添加標籤

在基於Prometheus進行監控平臺的設計的過程中,通過標籤對metrics進行分類,所以需要給metrics添加標籤。配置舉例如下:

scrape_configs:
  - job_name: 'node'
    static_configs: 
    - targets: ['localhost:9100']
    metric_relabel_configs:
    - target_label: test_key
      replacement: test_value

在去Prometheus上查看收集到的metrics:
在這裏插入圖片描述
可以看到該node上的metrics都增加了test_key的label,內容爲指定的test_value。
(而且標籤的值還可以支持中文,這什麼神仙監控組件啊,我哭了o(╥﹏╥)o)
我們可以通過這種方式metrics添加自己想要的標籤,更靈活的使用Prometheus的標籤處理自己的監控項。

官方文檔如下:
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

自勉小尾巴: 多少事,從來急;天地轉,光陰迫。一萬年太久,只爭朝夕。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章