Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Thanos 和 VictoriaMetrics 之间的深入比较:性能和差异

Thanos 和 VictoriaMetrics 之间的深入比较:性能和差异

作者头像
用户5166556
发布于 2024-01-03 09:08:46
发布于 2024-01-03 09:08:46
2.1K0
举报

本文对 Thanos 和 VictoriaMetrics 进行了比较,讨论了它们是什么、它们的架构组件以及它们的差异。

Thanos是什么?

Thanos 是一个开源项目,是为 Prometheus 构建的扩展,可解决与长期存储和高可用性相关的一些挑战。

Thanos 提供了具有扩展存储功能的高度可用的 Prometheus 设置,使组织能够高效地存储和查询历史数据。为了实现这一目标,它引入了额外的组件,例如 Thanos Sidecar 和 Thanos Store,它们增强了 Prometheus 部署的可扩展性和耐用性。Thanos 由多个组件组成,包括 Thanos Sidecar、Thanos Query、Thanos Store 和 Thanos Compact,它们共同创建一个分布式、容错且可扩展的时间序列数据库

通过利用分布式架构并与 Amazon S3 或 Google Cloud Storage 等对象存储系统集成,它可以实现无缝的水平可扩展性。Thanos 支持跨多个 Prometheus 实例的联合查询,使其成为处理大量时间序列数据的理想选择。

Thanos组件

  • Thanos Sidecar:充当 Prometheus 实例的 sidecar 组件代理,通过将数据推送到对象存储并促进跨多个 Prometheus 服务器的全局查询联合来实现长期存储。
  • Thanos Querier:作为 Thanos 架构中的中央查询引擎,允许用户跨多个 Prometheus 实例执行查询,提供时间序列数据的统一视图。
  • Thanos Store:将时间序列数据存储在对象存储中,例如 Amazon S3 或 Google Cloud Storage,并为 Thanos Querier 提供高效的读取访问。它处理重复数据删除和压缩,优化存储利用率。
  • Thanos Compact:对对象存储中的时间序列数据进行压缩,通过删除冗余数据块和块来减少存储开销并提高查询性能。
  • Thanos Ruler:为 Thanos 生态系统提供基于规则的扩展警报功能,允许用户跨分布式 Prometheus 实例定义和评估复杂的警报规则。
  • Thanos Receiver:提供一个端点,用于从远程 Prometheus 实例获取数据并将其存储在对象存储中。它可以高效、可靠地获取数据以进行长期存储和分析。
  • Thanos Compactor:通过合并和下采样数据块来管理压缩过程,提高查询效率,并减少长期存储层的存储需求。
  • Thanos Bucket:允许以时间分区的方式存储数据,通过根据时间范围将数据组织到可管理的存储桶中来提高查询性能。
  • Thanos 查询前端:作为面向用户的组件,接收查询请求并将其分发到 Thanos Querier 实例。它提供了一个基于 Web 的界面,用于执行查询和可视化结果。
  • Thanos Sidecar Downsample:为 Thanos Sidecar 提供下采样功能,降低存储时间序列数据的粒度,以提高较长时间范围的查询性能。

这些组件共同构成了 Thanos 架构,为 Prometheus 部署提供增强的可扩展性、容错能力、长期存储和全局查询功能。

什么是VictoriaMetrics

而VictoriaMetrics则是一个高性能、高性价比、可扩展的时间序列数据库,可以作为Prometheus的长期远程存储。它拥有卓越的数据压缩和高速数据摄取能力,使其成为大规模监控任务的有吸引力的替代方案。VictoriaMetrics源代码可以在以下位置找到: https: //github.com/VictoriaMetrics/VictoriaMetrics

这些项目的 GitHub 存储库包含所有源代码、文档、问题、拉取请求和文档。如果您想更多地了解这些系统的工作原理、想为项目做出贡献或者需要帮助解决问题,那么这些都是开始使用 Docker 的绝佳资源和教程。

VictoriaMetrics 组件

Victoria Metrics 在保持更简单的架构的同时,还包括几个核心组件:

  • VictoriaMetrics 单节点:这是 VictoriaMetrics 的基本构建块。它包括时间序列数据库和用于摄取和查询数据的HTTP服务器。
  • VictoriaMetrics Cluster:专为大规模部署而设计,VictoriaMetrics 的集群版本包括附加组件,例如分别用于查询执行、数据摄取和长期存储的 VMSelect、VMInsert 和 VMStorage 节点。
  • vmagent:Vmagent 是一个微小但功能强大的数据抓取器,可以从各种来源提取数据并将其发送到 VictoriaMetrics 或任何其他支持 InfluxDB 或 Prometheus 远程写入协议的远程存储。
  • vmalert:它根据 VictoriaMetrics 或任何其他兼容的 TSDB 评估警报和记录规则。
  • vmctl:此 CLI 工具将数据从不同的 TSDB 迁移到 VictoriaMetrics。
  • vmstorage:VictoriaMetrics 的存储后端。
  • vmui:VictoriaMetrics 开箱即用的 UI 层。

Thanos和VictoriaMetrics之间的差异

Thanos 和 VictoriaMetrics 是大规模运行的监控系统,旨在为时间序列数据提供长期存储解决方案,特别是在可观测性领域使用 Prometheus 的环境中。然而,两者之间存在几个关键区别。

起源与目的

Thanos:作为一个项目而诞生,旨在解决 Prometheus 中多集群监控和长期存储的需求,而无需求助于完全独立的监控系统。它通过全局查询视图、无限保留和下采样扩展了 Prometheus。

VictoriaMetrics:最初是作为 Prometheus 的替代长期远程存储 TSDB。

架构

Thanos:它基于模块化系统,您可以在其中部署单独的组件,例如 Sidecar、Store Gateway、Querier 等。每个组件都执行特定的功能。该系统可能有点复杂,但提供了灵活性。

VictoriaMetrics:它使用更简单的单节点和集群版本。VictoriaMetrics 强调简单性和易于部署。

存储效率

Thanos:使用 TSDB 格式,与 Prometheus 相同。虽然它确实提供下采样以节省空间,但在某些条件下它可能不如 VictoriaMetrics 那样具有存储效率。

VictoriaMetrics:声称由于其自定义的存储格式和压缩算法而具有更好的存储效率。

查询语言

Thanos:使用 PromQL,与 Prometheus 和 Prometheus API 相同的查询语言。

VictoriaMetrics:引入了MetricsQL,受到PromQL的启发,并且向后兼容PromQL。

高可用性和可靠性

Thanos:通过依赖对象存储(如AWS S3、GCS、Azure等)来存储长期数据来实现高可用性,并为其其他组件提供复制功能。这种设计选择带来了一些备份优势。

VictoriaMetrics:提供集群版本以实现高可用性和冗余,因为它将数据存储在本地存储上。

向下采样和保留机制

Thanos:具有明确的向下采样功能,允许您为原始、5 分钟和 1 小时下采样数据定义不同的保留期。

VictoriaMetrics还提供向下采样和可定制的保留策略,但细节可能有所不同。

一体化

Thanos:旨在与 Prometheus 和 Prometheus 生态系统紧密集成,并且可以与 Grafana 集成以实现可视化仪表板。

VictoriaMetrics:虽然它提供与 Prometheus 生态系统的兼容性,但 VictoriaMetrics 也可以用作 TSDB 的直接替代品。它与 Grafana 集成,也可以与 Thanos 或 Cortex 一起使用。

性能表现

性能可能因用例、硬件、数据量、预期高基数、延迟和查询复杂性而异。一些用户发现 VictoriaMetrics 速度更快、资源效率更高、CPU 使用率和磁盘空间更好,而其他用户可能更喜欢 Thanos 的模块化架构来进行特定设置。这两个 TSDB 都承诺能够轻松处理大量工作负载。VictoriaMetrics 也发布了一个性能测试基准https://victoriametrics.com/blog/benchmark-100m/

社区与发展

Thanos:拥有一个强大而活跃的社区,来自许多组织的贡献,包括 Slack 社区频道。这也是 CNCF 的孵化项目。

VictoriaMetrics:它在 Slack 和 Telegram 上也有活跃的社区,该项目在设计原则上强调性能和简单性。

与 Kubernetes 集成

鉴于 Kubernetes 是需要大规模监控解决方案的主要环境之一,Thanos 和 VictoriaMetrics 都旨在与 Kubernetes 无缝协作。以下是两者如何与 Kubernetes 集成的详细说明:

Thanos 和 Kubernetes

  • 作为有状态/无状态集部署:根据其性质,Thanos 组件可以部署为 StatefulSet(对于需要持久存储的组件)或 Deployment(对于无状态组件)。
  • Thanos Sidecar:对于 Kubernetes 集群中运行的每个 Prometheus 实例,您通常会在其旁边部署一个 Thanos Sidecar(在同一个 Pod 中)。这个 sidecar 负责将 Prometheus 数据上传到对象存储,是 Thanos Querier 的数据源。
  • 服务发现:Thanos 组件可以使用 Kubernetes 服务发现来查找彼此。例如,Thanos Querier 可以发现所有 Sidecars 和 Thanos Stores。
  • 使用 ConfigMap 进行配置:Thanos 组件的配置可以存储在 Kubernetes ConfigMap 中,并根据需要安装到 pod 中。
  • 存储:Thanos 使用对象存储(如 Amazon S3、Google Cloud Storage 等)进行长期存储。Kubernetes 中的持久卷通常用于短期存储。
  • Helm Charts:Thanos 有可用的 Helm 图表,这使得在 Kubernetes 上部署和管理其组件变得更加简单。

VictoriaMetrics 和 Kubernetes

  • 作为 StatefulSet 部署:当需要持久存储时,VictoriaMetrics,尤其是单节点版本,可以在 Kubernetes 中部署为 StatefulSet。
  • vmagent:VictoriaMetrics 提供了一个名为的组件vmagent,旨在与 Prometheus 一起部署或代替 Prometheus。它从服务端点获取数据并将其发送到 VictoriaMetrics。
  • 服务发现:与 Prometheus 一样,vmagent您可以使用 Kubernetes 服务发现来查找要从中获取指标的服务。
  • 使用 ConfigMap 进行配置:配置(例如抓取配置)可以存储在 Kubernetes ConfigMap 中。
  • 存储:VictoriaMetrics 将数据存储在磁盘上,并可以利用 Kubernetes 中的持久卷。对于 AWS,您还可以使用 EBS 卷。VictoriaMetrics 可以为其集群版本跨多个节点/pod 分发数据。
  • Helm Charts:VictoriaMetrics 提供了 Helm 图表,简化了其在 Kubernetes 上的部署。
  • 垂直 Pod 自动缩放:考虑到其高效的资源使用,VictoriaMetrics 经常建议在 Kubernetes 中使用垂直 Pod 自动缩放。

从本质上讲,Thanos 和 VictoriaMetrics 都是根据云原生原则构建的,并与 Kubernetes 很好地集成。选择一种通常取决于特定功能、操作偏好或现有基础设施。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用Thanos和Kubernetes构建指标系统
指标是任何分布式系统中可观测性的支柱,在 Kubernetes 环境中,Prometheus 通常是……的工具。
云云众生s
2024/09/25
2000
有关Prometheus和Thanos的所有信息、差异以及它们如何协同工作。
在监控和可观察领域,Prometheus 和 Thanos 已成为处理时间序列数据的两个强大工具。这两个系统都提供强大的特性和功能,帮助组织获得对其基础设施和应用程序的宝贵见解。
用户5166556
2024/01/17
5460
有关Prometheus和Thanos的所有信息、差异以及它们如何协同工作。
Prometheus 与 VictoriaMetrics (VM) 的比较 - 可扩展性、性能、可用性
时序数据库有很多,比如 Prometheus、M3DB、TimescaleDB、OpenTSDB、InfluxDB等等。Prometheus 和 VictoriaMetrics 是开源时间序列数据库,可为复杂 IT 环境中的监控和告警提供强大的解决方案。然而,它们的设计不同,并提供独特的功能,这些功能可能会影响其性能、可扩展性和监控工作负载的易用性。本文旨在分析 Prometheus 和 VictoriaMetrics 之间的差异,从而为寻求最适合其特定需求的解决方案(作为监控解决方案和可观察性或对系统进行故障排除)的用户提供见解。
用户5166556
2024/01/10
2.3K0
Prometheus 与 VictoriaMetrics (VM) 的比较 - 可扩展性、性能、可用性
使用 Thanos 实现 Prometheus 的高可用
前面我们已经学习了 Prometheus 的使用,了解了基本的 PromQL 语句以及结合 Grafana 来进行监控图表展示,通过 AlertManager 来进行报警,这些工具结合起来已经可以帮助我们搭建一套比较完整的监控报警系统了,但是也仅仅局限于测试环境,对于生产环境来说则还有许多需要改进的地方,其中一个非常重要的就是 Prometheus 的高可用。
我是阳明
2020/06/15
7.9K1
使用 Thanos 实现 Prometheus 的高可用
Thanos 与 VictoriaMetrics,谁才是打造大型 Prometheus 监控系统的王者?
Thanos[1] 和 VictoriaMetrics[2] 都是用来作为 Prometheus 长期存储的成熟方案,其中 VictoriaMetrics 也开源了其集群版本[3],功能更加强大。这两种解决方案都提供了以下功能:
米开朗基杨
2020/09/01
5.6K0
Promethues 之 Thanos
请看我之前写的 Prometheus简介,原理和安装 https://www.cnblogs.com/you-men/p/12839535.html
iginkgo18
2021/01/18
1.7K1
到底谁强?Grafana Mimir 和 VictoriaMetrics 之间的性能测试
Grafana 实验室的 Mimir 是一个在 AGPLv3 许可下新的时间序列数据库,该工程团队从 Cortex TSDB 中汲取精华,同时降低了复杂性并提高了可扩展性。
我是阳明
2022/09/29
1.5K0
到底谁强?Grafana Mimir 和 VictoriaMetrics 之间的性能测试
构建企业级监控平台系列(二十六):Prometheus 高可用架构 Thanos 实践
前面介绍了 Prometheus AlertManager、Alertmanager 配置实现钉钉告警、Pushgateway、基于K8S服务发现、监控常见服务、配置 Grafana 展示与报警、高可用集群方案相关的知识点,今天我将详细的为大家介绍Prometheus 高可用架构 Thanos相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈支持一波!!!
民工哥
2023/11/03
1.6K0
构建企业级监控平台系列(二十六):Prometheus 高可用架构 Thanos 实践
Thanos的架构剖析
为了解决Prometheus缺少多集群监控的全局视图,以及对历史数据的存储问题,Improbable开源了他们的Prometheus高可用解决方法Thanos,Thanos与Prometheus无缝集成,并为Prometheus带来了全局视图和不受限制的历史数据存储能力。
CNCF
2021/05/07
3K0
Thanos的架构剖析
VictoriaMetrics原理及实践
VictoriaMetrics,是一个快速高效、经济并且可扩展的监控解决方案和时序数据库。
mikelLam
2022/10/31
3.6K0
VictoriaMetrics原理及实践
打造云原生大型分布式监控系统(三): Thanos 部署与实践
上一篇 Thanos 架构详解 我们深入理解了 thanos 的架构设计与实现原理,现在我们来聊聊实战,分享一下如何部署和使用 Thanos。
imroc
2020/04/20
6.3K5
如何选择 Thanos 的 Sidecar 和 Receiver 两种模式?
Prometheus 无疑是现在最热门的监控系统,它已被证明是 Kubernetes 系统中监控和报警的首选解决方案,不过虽然 Prometheus 有一些方案来实现自身的高可用性,但它在数据保留、历史数据检索和多租户方面也有其自身的局限性,而这也是 Thanos 试图去弥补 Prometheus 不足的地方。本文我们将介绍在 Kubernetes 环境中集成 Thanos 和 Prometheus 的两种不同方法,并将对比这两种方式的异同点。
我是阳明
2022/04/06
2.6K0
如何选择 Thanos 的 Sidecar 和 Receiver 两种模式?
Prometheus 监控实践
监控作为底层基础设施的一环,是保障生产环境服务稳定性不可或缺的一部分,线上问题从发现到定位再到解决,通过监控和告警手段可以有效地覆盖了「发现」和「定位」,甚至可以通过故障自愈等手段实现解决,服务开发和运维人员能及时有效地发现服务运行的异常,从而更有效率地排查和解决问题。
xjjdog
2020/11/09
1.6K0
Prometheus 监控实践
使用 Thanos 集中管理多 Prometheus 实例数据
原文 https://www.chenshaowen.com/blog/manage-multiple-prometheus-using-thanos.html
陈少文
2022/03/28
2K0
使用 Thanos 集中管理多 Prometheus 实例数据
Thanos Ruler 组件的使用
Thano Ruler 组件是用于评估 Prometheus 的记录规则和报警规则的组件,其本身不会抓取 metrics 接口数据,而是通过 Query API 从 query 组件定期地获取指标数据,如果配置了多个 query 地址,则会采用轮询方式获取。
我是阳明
2022/05/22
2.1K0
Thanos Ruler 组件的使用
17 Feb 2020 thanos学习(一)
提到thanos,一般会介绍prometheus监控系统,它能够实时查询数百万个指标数据,并提供一套强大的查询语言,用户可以通过该语言从这些指标数据中提取有用的信息,但是大规模prometheus集群会存在一些问题,thanos就是为了解决这些问题而存在:
俊采
2023/10/17
2110
vivo 容器集群监控系统架构与实践
从容器技术的推广以及 Kubernetes成为容器调度管理领域的事实标准开始,云原生的理念和技术架构体系逐渐在生产环境中得到了越来越广泛的应用实践。在云原生的体系下,面对高度的弹性、动态的应用生命周期管理以及微服务化等特点,传统的监控体系已经难以应对和支撑,因此新一代云原生监控体系应运而生。
2020labs小助手
2022/06/20
8050
监控神器Prometheus用不对,也就是把新手村的剑
监控系统的历史悠久,是一个很成熟的方向,而 Prometheus 作为新生代的开源监控系统,慢慢成为了云原生体系的事实标准,也证明了其设计很受欢迎。
lyb-geek
2020/07/14
3.5K0
监控神器Prometheus用不对,也就是把新手村的剑
为什么我们选择 Thanos 进行长期指标存储?
应用程序开发人员根据用于态势感知或识别长期趋势的指标创建仪表板。他们希望衡量他们的增长并将今天的每日活跃用户与一年前的价值进行比较。
用户5166556
2023/03/18
9210
为什么我们选择 Thanos 进行长期指标存储?
thanos内核
产生数据,目前只有两种 Prometheus sidecar 和 rule nodes.
王磊-字节跳动
2019/12/29
2.5K0
推荐阅读
相关推荐
使用Thanos和Kubernetes构建指标系统
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档