【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

Thanos 如何让 Prometheus 更易用?

  • 2018-12-23
  • 本文字数:1846 字

    阅读完需:约 6 分钟

Thanos如何让Prometheus更易用?

Prometheus 本身其实非常棒:它提供了出色的查询语言和统一的收集、发布指标的方法。不过,要让 Prometheus 具备高可用性和可扩展性却是一个不小的挑战。


我们需要以下这些特性:


  • 高可用的 Prometheus;

  • 可在一个地方查询所有指标;

  • 轻松备份和归档数据。


而这就是 Thanos 的用武之地。

让 Prometheus 具备高可用性

Thanos 最基本的功能就是让你可以一次查询多个 Prometheus 实例,并且能够对来自多个实例的相同指标进行去重。这样你就可以运行多个相同的 Prometheus 副本,而无需担心重复指标。


Thanos 边车是 Thanos 提供的一个组件,它与每个 Prometheus 容器一起运行,共同形成一个集群。你实际上查询的是 Thanos Query 组件,而不是 Prometheus 实例。下图有助于理解 Prometheus 与 Thanos 之间的关系。



光是这一点就已经很棒了,因为它可以让你轻松地实现高可用的 Prometheus。除此之外,你还可以使用这些构建块做更多的事情。

在同一个地方查看指标

下一个问题是如何将所有指标集中到一个地方。


我们运行了多个 Kubernetes 集群,每个集群都有自己的 Prometheus 实例。我们之前通常是通过使用特殊的 Prometheus 来抓取每个 Prometheus 实例的联合端点来聚合它们的指标。这样确实可行,但是太浪费资源了,因为我们复制了所有指标,而且这个特殊的 Prometheus 存在单点故障问题。


Thanos Query 节点可以将另一个 Query 节点作为数据源,如果将集群中 Thanos Query 节点的 gRPC 端点公开,就可以将它们作为数据存储,并创建聚合它们的 Thanos Query,见下图。



我们可以使用一个 Thanos Query 来获取所有集群的指标。在下面的屏幕截图中,我只用一个查询查询三个集群(红色、黑色、蓝色)中的 Daemonset 副本数量。



但是这个设置仍然存在问题,因为在每个集群中都有一个特殊的 Thanos Query,我们通过它将获取指标视图,如果它宕机就会导致不可用。我们希望运行多个 Thanos Query 节点,每个集群中都有一个这样的节点,实现用户查询的负载均衡。通过使用我们的 AWS 多集群负载均衡工具Yggdrasil,可以在多个 Kubernetes 集群中分配流量。用户可以查询任意的集群,并接收所有的指标。


当我们把它们放在一起时看起来像这样:



请注意,每个 Thanos Query 层都是 Thanos Query 节点的副本集,这样做是为了增加弹性。


这为我们提供了一个令人难以置信的弹性 Prometheus 设置,跨多个集群,并具有多个副本,为我们提供了大量的冗余层。如果你想查看 Prometheus 指标,可以直接在一个地方查看,而无需操心应用程序所在的集群和命名空间等问题。

存储

Prometheus 的另一个常见问题是备份和保留所有指标。将数据保存在 Prometheus 实例上通常很昂贵,并且会影响性​​能。Thanos 通过边车不断将数据备份到云存储(如 S3),然后通过 Store 节点公开数据来解决这个问题。Store 节点让你感觉好像在 Thanos 集群中有另一个 Prometheus 实例,但所有数据都来自 S3 存储桶。


如果集群发生故障,Store 节点也会为我们提供一些很好的弹性。因为如果 Prometheus 实例消失,就无法查询到最新的数据,但我仍然可以通过查询另一个集群中的 Store 节点来访问数据,因为这些节点可以访问 S3 中的历史数据。

未来的工作

一直以来,我们很想做的一件事情是可以按照团队或命名空间来拆分 Prometheus 集群,这样,每个 Prometheus 实例就不会太大,并且具备了冗余,避免有团队产生大量的指标搞垮 Prometheus。但这样做会非常费力,因为为每个团队或命名空间设置一个单独的端点会带来很多开销,但是有了 Thanos,我们就可以将基于团队的 Prometheus 添加到 Thanos 集群中,并且仍然可以使用相同的单一指标来源。因此,我们希望切换到使用很多小型的 Prometheis,并使用 Prometheus Operator 来创建它们。


总的来说,Thanos 给了我们:


  • 高可用的 Prometheus ——使用 Thanos 边车 + Thanos Query 进行数据去重;

  • 在一个地方查询所有指标——聚合所有集群的 Thanos Query;

  • 轻松备份和归档数据——Thanos 边车和 Thanos Store(基于 S3)。


Thanos 确实将我们的指标设置提升到了一个新的水平,简化了用户查询指标的方式,并为我们提供了一定的弹性。现在,从新的 Kubernetes 集群添加指标变得非常容易。不过,有一点需要注意的是,Thanos 仍然是一个相对较新的产品,所以它可能还是会存在一些奇怪的 bug,幸好它的背后有一个非常活跃的团队和社区在不断地改进它。如果你想加入他们,可以看看他们的Github项目Slack频道


英文原文:https://medium.com/uswitch-labs/making-prometheus-more-awesome-with-thanos-fbec8c6c28ad


2018-12-23 13:015068
用户头像

发布了 731 篇内容, 共 434.4 次阅读, 收获喜欢 1997 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

Maven Shade插件relocation修改类常量的问题

Laughing

Java 后端 Maven-Shade-Plugin RelocationClass

飞桨框架v2.4 API新升级!全面支持稀疏计算、图学习、语音处理等任务

百度Geek说

API 框架 3D点云 企业号 2 月 PK 榜 Sparse Transformer

完美主义者友好!合合信息旗下扫描全能王“智能擦除”照片中的杂物

合合技术团队

人工智能 图片 文本

90%企业在探索的敏捷开发怎么做?极狐GitLab总结了这些逻辑与流程

极狐GitLab

DevOps 敏捷开发 持续集成 CI/CD 持续交付

使用自定义的初始化方法宏(OC)

刿刀

利用DUCC配置平台实现一个动态化线程池

京东科技开发者

spring 多线程 代码 动态线程池 ducc

黑龙江哈尔滨市等保测评机构有五家啦!名单看这里!

行云管家

等保 机构 等保测评 哈尔滨

可靠、稳定、安全,龙蜥云原生容器镜像正式发布!

OpenAnolis小助手

开源 容器 云原生 镜像 龙蜥社区

百分点科技宣布接入百度文心一言能力 数据科学基础平台获领先AI技术加持

百分点科技技术团队

直播 | StarRocks 实战系列第二期--导入优化&问题排查

StarRocks

数据库 开源

英特尔研究院探索负责任的生成式AI,让AI应用真正惠及大众

科技之家

WorkPlus即时通讯集成工作平台,提效企业一体化管控

WorkPlus

更专业、安全、可控!政企都选择WorkPlus私有化部署

WorkPlus

国际财务系统基于ShardingSphere的数据分片和一主多从实践

京东科技开发者

数据库 数据分片 ShardingSphere 企业号 2 月 PK 榜 一主多从

连续两年榜上有名!TDengine 荣获墨天轮“2022 年度时序数据库”奖项

TDengine

数据库 tdengine 时序数据库

程序员超级干货书单:技术人必看

引迈信息

程序员 敏捷开发 书单

电阻为什么都是4.7kΩ、5.1kΩ,而不是整数5kΩ?

元器件秋姐

科普 元器件 元器件知识 电阻 电阻值

QCon演讲实录(下):多云管理关键能力实现与解析-AppManager

阿里云大数据AI技术

大数据 运维 多云服务 多云管理

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v8.4版已发布

JackJiang

即时通讯 即时通讯IM

瓴羊Quick BI可视化功能,满足企业的数据分析需求

对不起该用户已成仙‖

关系型数据库的架构演变

石臻臻的杂货铺

数据库 架构

墨天轮【第二届数据库掌门人论坛】圆满收官 | 含嘉宾精彩观点回顾

墨天轮

数据库 Serverless TiDB oceanbase 国产数据库

大模型为什么是深度学习的未来?

蓝海大脑GPU

人工智能 深度学习 大模型

炸了!3年图片都没了

艾小仙

拥有了瓴羊Quick BI,企业的数据分析变得更好

巷子

使用 Ingest Pipeline 在 Elasticsearch 中对数据进行预处理

Se7en

有了瓴羊Quick BI,企业再也不必担心可视化分析情况

小偏执o

多款社交黑马海外霸榜,融云全球通信服务护航登顶

融云 RongCloud

飞桨特色产业级模型库助力AI开发与落地更简单

飞桨PaddlePaddle

paddle 开源 模型 飞桨

什么是网关型堡垒机?与运维审计堡垒机有什么区别?

行云管家

堡垒机 堡垒机网络安全

用Docker在本地搭建nginx静态服务器&反向代理

致知Fighting

Java Docker 后端

Thanos如何让Prometheus更易用?_云原生_Joseph Irving_InfoQ精选文章