grafana agent 与vmagent 的一些比较
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