Thanos 工作原理及组件简介

本文涉及的产品
对象存储 OSS,20GB 3个月
EMR Serverless StarRocks,5000CU*H 48000GB*H
可观测监控 Prometheus 版,每月50GB免费额度
简介: Thanos 工作原理及组件简介

Thanos 简介

Thanos 是一个「开源的,高可用的 Prometheus 系统,具有长期存储能力」。很多知名公司都在使用 Thanos,也是 CNCF 孵化项目的一部分。

Thanos 的一个主要特点就是通过使用对象存储(比如 S3)可以允许 “无限” 存储空间。对象存储可以是每个云提供商提供的对象存储也可以是 ceph、rook 或 minio 这样的解决方案。

工作原理

Thanos 和 Prometheus 并肩作战,从 Prometheus 开始升级到 Thanos 是很常见的。

Thanos 被分成几个组件,每个组件都只有一个目标(典型云原生架构),组件之间通过 gRPC 进行通信。

Thanos Sidecar

Thanos 和 Prometheus 一起运行(有一个边车),每 2 小时向一个对象存储库输出 Prometheus 指标。这使得 Prometheus 几乎是无状态的。Prometheus 仍然在内存中保存着 2 个小时的度量值,所以在发生宕机的情况下,你可能仍然会丢失 2 个小时的度量值(这个问题应该由你的 Prometheus 设置来处理,使用 HA/ 分片,而不是 Thanos)。

📓 参考文档:

Prometheus 基本高可用架构

Thanos sidecar 与 Prometheus Operator 和 Kube Prometheus 栈一起,可以轻松部署。这个组件充当 Thanos 查询的存储。

Thanos Store(存储)

Thanos 存储充当一个网关,将查询转换为远程对象存储。它还可以在本地存储上缓存一些信息。基本上,这个组件允许你查询对象存储以获取指标。这个组件充当 Thanos 查询的存储。

Thanos Compactor

Thanos Compactor(压缩器) 是一个单体(它是不可扩展的),它负责压缩和降低存储在对象存储中的指标。下采样(数据老化)是随着时间的推移对指标粒度的宽松。例如,你可能想将你的指标保持 2 年或 3 年,但你不需要像昨天的指标那么多数据点。这就是压缩器的作用,它可以在对象存储上节省字节,从而节省成本。

Thanos Query

Thanos Query(查询)是 Thanos 的主要组件,它是向其发送 PromQL 查询的中心点。Thanos 查询暴露了一个与 Prometheus 兼容的端点。然后它将查询分派给所有的 “stores”。记住,Store 可能是任何其他提供指标的 Thanos 组件。Thanos 查询可以发送查询到另一个 Thanos 查询(他们可以堆叠)。

  • Thanos Store
  • Thanos Sidecar
  • Thanos Query

还负责对来自不同 Store 或 Prometheus 的相同指标进行重复数据删除。例如,如果你有一个度量值在 Prometheus 中,同时也在对象存储中,Thanos Query 可以对该指标值进行重复数据删除。在 Prometheus HA 设置的情况下,重复数据删除也基于 Prometheus 副本和分片。

Thanos Query Frontend(查询前端)

正如它的名字所暗示的,Thanos 查询前端是 Thanos 查询的前端,它的目标是将大型查询拆分为多个较小的查询,并缓存查询结果(在内存或 memcached 中)。

还有其他组件,比如在远程写的情况下 Thanos Receiver(接收器)、Thanos Ruler(规则)。

Thanos 部署架构

Sidecar 方式部署:

thanos-architecture-deployment-with-sidecar

Receiver 方式部署:

thanos-architecture-deployment-with-receiver

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
8月前
|
定位技术 UED
卫星电话的工作原理简介
卫星电话的工作原理简介
|
8月前
|
编解码
A/D和D/A工作原理
A/D(模数转换)和D/A(数模转换)是两种常见的信号转换技术,用于将模拟信号转换为数字信号(A/D)或将数字信号转换为模拟信号(D/A)。以下是对这两种技术的工作原理的详细介绍。 A/D转换器的工作原理: A/D转换器是一种将连续的模拟信号转换为离散的数字信号的设备。它由两个主要部分组成:采样和量化。 1. 采样: 采样是将连续的模拟信号在一定时间间隔内进行离散化的过程。A/D转换器使用一个称为采样保持电路的设备来完成这一过程。采样保持电路在一段时间内对模拟信号进行采样,并将其保持在一个电容中。采样过程中的时间间隔称为采样周期,其决定了采样率。采样率越高,转换的数字信号越接近原始模拟信号
136 0
|
23天前
|
开发者
简述库和框架的区别
简述库和框架的区别
15 2
|
9天前
|
Java 开发者 Spring
深入解析这两种扩展机制的工作原理和用法
深入解析这两种扩展机制的工作原理和用法
|
1月前
|
开发框架 JavaScript 前端开发
什么是渐进式框架?作用是什么?如何使用?
什么是渐进式框架?作用是什么?如何使用?
136 0
|
1月前
|
自然语言处理 JavaScript 前端开发
|
7月前
|
数据采集 存储 中间件
【 ⑭】Scrapy架构(组件介绍、架构组成和工作原理)
【 ⑭】Scrapy架构(组件介绍、架构组成和工作原理)
243 0
|
11月前
|
移动开发 开发框架 JavaScript
什么是组件,以及前端各种框架组件的使用方法
什么是组件,以及前端各种框架组件的使用方法
192 1
|
11月前
|
网络协议 Java
JavaRPC原理与实现简介
远程过程调用(Remote Procedure Call,简称RPC)是一种计算机通信协议,它允许在不同的进程之间进行通信,就像在本地调用一样。JavaRPC是基于Java语言实现的一种RPC框架,旨在简化分布式系统的开发和管理。
103 0
|
11月前
|
JavaScript 开发者
elementui是什么,简要概述?
elementui是什么,简要概述?
716 0