VictoriaMetrics vmagent的一些介紹


以前有簡單說明過vmagent,實際上vmagent可以替代我們做好多事情.以下是一個說明

vmagent的作用

主要目的是實現metrics 的收集然后存儲到VictoriaMetrics以及prometheus兼容的存儲系統(主要支持remote_write 協議即可,有好多實現)
同時一個好處是實現了metrics 的push,而不是prometheus 的pull(比如無法pull 的場景)

參考架構圖

 

 

特性

  • 替換prometheus 的scraping target(比如node export)
  • 基於prometheus relabeling 的模式添加,移除,修改labels ,可以方便在數據發送到遠端存儲之前進行數據的過濾
  • 支持多種數據協議,influx line 協議,grapgite 文本協議,opentsdb 協議,prometheus remote write 協議,json lines協議,csv 數據
  • 支持收集數據的同時,並復制到多種遠端存儲系統
  • 支持不可靠遠端存儲(通過本地存儲 -remoteWrite.tmpDataPath ),同時支持最大磁盤占用
  • 相比prometheus使用較少的內存,cpu,磁盤io,以及網絡帶寬

啟動模式

  • 參考命令
 
/path/to/vmagent -promscrape.config=/path/to/prometheus.yml -remoteWrite.url=https://victoria-metrics-host:8428/api/v1/write

使用場景

  • iot 以及邊緣監控
  • 替換prometheus
  • 數據復制以及高可用
  • 標簽重命名以及過濾
  • 多種存儲系統系統數據流的切分(比如到kafka,timescaledb,cratedb,es。。。)
  • prometheus remote_write 的proxy (promxy 也是一個可選方案)

收集 prometheus 格式數據

  • 配置說明
    類似prometheus,主要使用了global以及scrape_configs,注意remote_write 會被忽略,應該使用-remoteWrite.* 替換
  • scrape_config 支持的配置
 
- static_configs -  靜態配置
- file_sd_configs - 基於文件的服務發現
- kubernetes_sd_configs -  k8s 服務發現
- ec2_sd_configs -  ec2 服務發現
- gce_sd_configs - gce_sd 服務發現
- dns_sd_configs - consul 服務發現

添加label 到metrics

支持的模式為

  • promscrape.config 文件中的 global -> external_labels 配置節點
  • 通過remoteWrite.label 命令行參數,當然為添加到所有的metrics到 remoteWrite.url 支持的存儲

標簽重命名

  • 支持的操作
replace_all:替換的所有OCCURENCES regex中的值source_labels與replacement和結果存儲在target_label。
labelmap_all:將所有regex標簽名稱中所有出現的內容替換
  • 支持的配置位置
在文件promscrape.config scrape_config -> relabel_configs部分。此重新標記將應用於目標標簽。
在文件promscrape.config scrape_config -> metric_relabel_configs部分。此重新標記將應用於給定中的所有已抓取指標scrape_config。
-remoteWrite.relabelConfig文件。在將所有收集到的度量標准發送到遠程存儲之前,會將其重新貼標簽。
-remoteWrite.urlRelabelConfig文件。將此重新標記應用於發送到相應的-remoteWrite.url 

監控

vmagent 暴露了一些metrics 以及 http://vmagent-host:8429/targets 方便查看target

常見問題

  • 推薦增加ulimit 限制
  • 當住區大量不可達target的時候會有錯誤提示,可以通過-promscrape.suppressScrapeErrors 命令行參數禁止
  • 推薦增加-remoteWrite.queues 對於如果有超過10萬的采樣,我們可以通過暴露的vmagent_remotewrite_pending_data_bytes metrics查看
  • vmagent 支持數據的本地cache,好多時候對於大量數據可能會有磁盤空間的問題,我們可以通過-remoteWrite.maxDiskUsagePerURL 參數調整

說明

以上內容來自官方文檔,通過文檔我們可以了解vmagent的場景,同時也可以學習到很多不錯的設計理念,可以看看源碼

參考資料

https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmagent


免責聲明!

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



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