时序数据库有很多,比如Prometheus、M3DB、TimescaleDB、OpenTSDB、InfluxDB等等。Prometheus与VictoriaMetrics都是开源的时间序列数据库,它们都提供了强大的监控和告警解决方案。本文我们分析下Prometheus和VictoriaMetrics之间的差异以及优缺点,从而来为用户提供最合适的解决方案。
成都创新互联是一家集网站建设,桐庐企业网站建设,桐庐品牌网站建设,网站定制,桐庐网站建设报价,网络营销,网络优化,桐庐网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Prometheus最初是 SoundCloud 中的一个项目,是一个功能强大的监控和警报工具包,专门用于处理多维环境中的时间序列数据。由于其对多维数据收集、查询和警报生成的本机支持,它在 SRE 和 DevOps 社区中变得非常受欢迎。
Prometheus 是在云原生计算基金会 (CNCF) 下开发的。Prometheus 服务器、客户端库、Alertmanager 和其他相关组件可以在 Prometheus GitHub 组织中找到。主要存储库是:https://github.com/prometheus/prometheus
VictoriaMetrics则是一个高性能、高性价比、可扩展的时间序列数据库,可以作为Prometheus的长期远程存储。它拥有超强的数据压缩和高速数据摄取能力,使其成为大规模监控任务的有吸引力的替代方案。VictoriaMetrics源代码可以在以下位置找到:https://github.com/VictoriaMetrics/VictoriaMetrics
VictoriaMetrics 与 Prometheus 之间的数据摄取和查询率性能基于使用指标的基准node_exporter`测试。内存和磁盘空间使用情况数据适用于单个 Prometheus 或 VictoriaMetrics 服务器。
比较 |
Prometheus |
VictoriaMetrics |
数据采集 |
基于拉动 |
基于拉式和推式 |
数据摄取 |
每秒高达 240,000 个样本 |
每秒高达 360,000 个样本 |
数据查询 |
每秒高达 80,000 次查询 |
每秒高达 100,000 次查询 |
内存使用情况 |
高达 14GB RAM |
高达 4.3GB 的 RAM |
数据压缩 |
使用LZF压缩 |
使用 Snappy 压缩 |
磁盘写入频率 |
更频繁地将数据写入磁盘 |
减少将数据写入磁盘的频率 |
磁盘空间使用情况 |
需要更多磁盘空间 |
需要更少的磁盘空间 |
查询语言 |
PromQL |
MetricsQL(向后兼容 PromQL) |
Prometheus使用基于PUll模型来收集指标,可以处理多达数百万个活动时间序列。该架构虽然简化了监控服务方的操作。但是也有一定的弊端,比如多个实例抓取的是相同的监控指标,不能保证采集的数据值为一致的,并且在实际的使用中可能遇到网络延迟问题,所以会产生数据不一致的问题,不过对于监控报警这个场景来说,一般不会要求数据的强一致性,所以从业务上来说是可以接受,因为这种数据不一致性影响基本上没什么影响。这种场景适合监控规模不大,只需要保存短周期监控数据的场景。
图片
而 VictoriaMetrics支持pull模型和Push模型。它能够处理大量数据和更广泛的网络场景(得益于其推送模型支持),使其具有可扩展性和灵活性。
图片
Prometheus的架构由四个主要组件组成:
VictoriaMetrics 提供单机版和集群版。如果您的每秒写入数据点数小于100万(这个数量是个什么概念呢,如果只是做机器设备的监控,每个机器差不多采集200个指标,采集频率是10秒的话每台机器每秒采集20个指标左右,100万/20=5万台机器),VictoriaMetrics 官方默认推荐您使用单机版,单机版可以通过增加服务器的CPU核心数,增加内存,增加IOPS来获得线性的性能提升。且单机版易于配置和运维。
下面这是一个集群版的架构图
图片
VictoriaMetrics在保持更简单的架构的同时,还包括几个核心组件:
Prometheus拥有高效的存储系统,但在长期数据存储后端和检索效率方面不如VictoriaMetrics。
VictoriaMetrics 相对于 Prometheus 的主要优势之一是其数据压缩功能。它的数据压缩算法,可显著降低存储要求。VictoriaMetrics 声称提供比 Prometheus 高出 10 倍的数据压缩,这是长期数据保留和成本优化的关键优势。
1.内存存储:与 Prometheus 类似,VictoriaMetrics 使用内存存储在传入数据写入磁盘之前进行缓冲。这种方法有助于优化写入性能。同时还缓存经常访问的数据以加快检索速度。
2.磁盘存储:VictoriaMetrics 中的大部分数据存储在磁盘上。它使用一种高效的存储格式,可以实现大幅度地进行数据压缩。
Prometheus使用PromQL。PromQL 允许实时选择和聚合时间序列数据。它使我们能够高度灵活地使用指标。通过 PromQL,用户可以过滤和聚合指标,计算比率、比率、平均值和百分位数等指标。
VictoriaMetrics向后兼容 PromQL。我们都可以按照理解的 PromQL 语法来进行查询。但是,它还引入了 PromQL 的扩展,称为MetricsQL。MetricsQL 增强了 PromQL 提供的查询功能。它引入了新函数、运算符和语法糖。简化并改善了用户体验,特别是对于复杂的查询和聚合。
Prometheus 本身并不支持集群,这意味着它不提供原生高可用性。高可用性可以通过运行重复实例来实现,或者thanos架构,当然也可以整合VictoriaMetrics。
来源:vivo容器监控系统架构
而VictoriaMetrics 在设计时就考虑到了高可用性。它使用复制和集群来确保在实例发生故障时数据不会丢失,从而成为了很多大厂的选择。
Prometheus和VictoriaMetrics都提供了基于 Http的 API接口,以满足客户端调用需求
VictoriaMetrics提供了一个全面的HTTP API,根据功能分为几个部分:
由于 VictoriaMetrics兼容Prometheus,所以在 在 Grafana 进行可视化配置时,可以使用“Prometheus”数据源,并将 Url 设置为VictoriaMetrics Server 地址即可。
以上我们总结Prometheus与VictoriaMetrics的各个方面的对比,虽然VictoriaMetrics在某些方面可能比Prometheus更强大,比如在处理大规模数据和高并发负载时的性能表现,完全可以替换Prometheus,但它相对来说是相对较新的项目,尚未达到Prometheus在用户社区和广泛采用方面的水平。此外,Prometheus的发展时间更早,是CNCF第二个毕业的项目,已经得到了大量用户的验证,并且有更多的文档、教程和案例可供参考。
此外,技术的流行和广泛采用并不仅仅取决于技术本身的性能,还受到多个因素的影响,包括市场宣传、社区支持、用户体验和可用性等。Prometheus在这些方面都做得相对较好,因此在监控领域更为流行和广泛采用。
参考
https://last9.io/blog/prometheus-vs-victoriametrics/
https://www.qikqiak.com/post/victoriametrics-usage/
当前标题:Prometheus与VictoriaMetrics优缺点对比
网址分享:http://www.stwzsj.com/qtweb/news17/8017.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联