grafana agent 是grafana 為了grafana cloud 開發的輕量的工具,但是也是直接可以使用的(依賴開放的,以及開源標准)
以下是grafana agent與vmagent 的一些比較
各自的功能
- vmagent
參考架構圖
vmagent 主要是進行metrcis 處理的,支持了多種metrics的處理,influxdb,opentsdb,node_exporter graphite。。。。
同時支持直接基於prometheus 配置的metrics 處理(服務發現也是支持的),relabeling,持久化pending狀態數據到本地盤(提供系統穩定性)
同時支持添加global labels,同時remote_write 協議(remote_read不支持,可以使用vmselect 解決)
- grafana agent
功能類似opentelemetry-collector,但是主要是agent 模式的支持,支持log,trace,metrics,prometheus remote write
同時對於prometheus 分服務發現支持也是很不錯的,功能很豐富
差異
- vmagent
基於以上的介紹我們也就大概直接各自的差異了,如果系統就是基於prometheus的體系,而且需要多種集成,將pull模式轉變為push,
那么vmagent 就是一個很不錯的選擇(功能主要就是解決prometheus 的一些問題),而且性能也不錯(項目創始人是很牛的gopher) - grafana agent
可以說是一把瑞士軍刀,log,trace,metrics 全幫你干了(集成了好多東西)。
對於metrics 的集成agent 是更恨,你常用的全幫你集成了
你就不需要獨立在部署相關的exporter了(redis,memecache,consul,node-exporter,process_exporter,postgres,mysql)總之就是基本全都
有了
對於log 的處理,grafana 的loki 是一個借鑒了prometheus 的日志系統也是一個很不錯的東西
對於trace 部分集成了grafana 的tempo (借鑒&&集成了jaeger),功能也是不弱的,而且支持基於對象存儲的存儲擴展(大規模分析long-term storage
很重要)
對於展示,這個就不用說了grafana 自家的grafana dashboard 是一個利器,支持強大的數據展示以及多種數據源的支持
當然很有必要說明下的是,agent 對於trace (tempo)的支持,主要是依賴了opentelemetry-collector核心部分(沒必要重復造輪子)
參考資料
https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/app/vmagent/README.md
https://github.com/grafana/agent
https://github.com/open-telemetry/opentelemetry-collector