百度可观测系列 | 基于 Prometheus 的大规模线上业务监控实践

本文分享了百度云原生团队如何在金融行业场景中,利用Prometheus构建大规模线上业务监控能力。文章探讨了Prometheus的集群化方案,包括联邦集群和远端存储,并详细介绍了如何通过指标降维、自动扩展分片采集和流式计算来解决大规模监控挑战。最终,提出了基于Flink的流式计算服务以降低存储计算压力,提升了系统的性能和可用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【百度云原生导读】Prometheus 在云原生监控领域已经成为事实的标准。在业界常见的实践案例中,更多是介绍如何做基础的监控能力对接,很少介绍如何将 Prometheus 大规模的应用于生产环境的案例。

而在现实场景中,大型互联网公司/金融行业场景的大规模、高可用、高时效性、高精确度等要求,会对现有的联邦或分布式存储 Prometheus 解决方案带来挑战。

本文将会介绍,百度云原生团队是如何针对金融行业的场景需求,结合百度内的应用实践经验,构建基于 Prometheus 的大规模线上业务交易监控能力。

Prometheus 的集群化方案分析

Prometheus 最大的优势在于 PromQL,它提供了灵活的数据分析查询能力,结合Grafana 提供的仪表盘查询,可以满足指标监控的大部分需求。

而面向大型互联网公司、金融行业等大规模业务监控的场景,原生的 Prometheus 单实例模式无法直接满足需求,需要一种面向生产环境的集群化高可用方案来进行支撑。

Prometheus 常见的集群化高可用思路包括两种:

  1. Prometheus 联邦集群方案

    1. Prometheus 联邦集群方案,是基于 Prometheus 单体模式的一种补充。可以让一系列 Prometheus 的单体分别采集不同的目标,然后将数据统一汇总到中央的 Prometheus 集群服务中。

    2. 在这种该方案中,中央的 Prometheus 仍然为单体模式,实际的存储能力仍然会受到单机的限制。所以在构建联邦模式时,需要根据数据量,对第一层的 Prometheus 所采集到的数据进行一些聚合计算,将减少后的数据传输到中央 Prometheus 中。故这种方案只能适用于最终需要分析的数据量偏少的场景。

    3. 同时该方案本身的维护成本颇高,需要对集群中的每一个 Prometheus 分片采集配置、预计算配置进行管理,如要访问除中央 Prometheus 集群中的数据,还需记录每一个 Prometheus 分片的访问路由。

  2. Prometheus 远端存储方案

    1. 远端存储可以提供相比单体 Prometheus,突破了单机的资源限制,能够提供更大规模和更长时间的存储能力。

    2. 通过这种方式,整体集群的管理会更加简单,只需要对 Prometheus 设置分片采集,统一将数据导入远端存储即可,配置管理成本也会降低许多。

基于以上分析,可以判断出在大规模的业务监控场景下,一种基于远端存储的Prometheus 方案是必须的。但对于远端存储,仍然有如下问题需要解决:

  1. 远端存储本身仍然有容量的上限限制,针对数据存储时长、性能等要求,并不可能无限扩容。

  2. 存储的数据量越大,查询分析的压力也就会越大,一些涉及聚合计算曲线较多的查询、预计算规则(Record Rule)、报警规则(Alert Rule)所带来的大量查询,仍然会将整个集群拖垮。

我们从两个角度,来构建出一套解决方案:

  1. 减少指标量级:借鉴 Prometheus 联邦的思路,从采集层做预聚合,来减少指标量级,这个需要从业务角度来进行分析,如何针对交易量类型的指标,缩减指标量级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值