Prometheus的兴起、挑战与高可用方案
Prometheus的兴起与挑战
Prometheus凭借其"师出名门"(源自Google BorgMon)、云原生友好(与Kubernetes集成紧密)、开箱即用(自带告警、UI等)等优势迅速兴起,但同时也面临存储限制、查询性能瓶颈、运维复杂性、高可用性缺失、数据存储清理等问题。
Prometheus服务的高可用方案对比
常见高可用方案
- 基础HA+远端存储+联邦集群
- Cortex/Mimir原生架构
Cortex/Mimir的优劣
优势:
- 原生兼容Prometheus协议,底层基于PrometheusTSDB
- 支持WAL、副本及对象存储,具备高可靠性
- 架构分布式、存算分离,支持横向扩展
劣势:
- 社区逐渐没落,后期维护成本高
- 业界大规模使用较少(除AWS外)
- 开源协议不友好
选择Cortex/Mimir的原因
核心诉求:
- 完全兼容Prometheus
- 高时序查询性能或可扩展性
- 低廉部署成本
具体考量:
- 支持多租户隔离
- 可扩展和弹性能力
- 功能和协议兼容(Prometheus/OpenTelemetry)
- 高可扩展性
- 开放开源避免版权问题
- 研发成本可控
与其他方案的对比
- Thanos:本质为Prometheus联邦,不支持多租户
- VictoriaMetrics:性能高但集群版本较弱,存在数据丢失风险
Prometheus vs Cortex存储模型
详细对比了两种架构的存储模型差异
架构裁剪和增强
- 架构裁剪:去除可选组件,简化依赖
- 全链路优化:
- 性能优化:启动加速+投递打散
- 增强功能:TSDB乱序支持(WALvsWBL)
- 容灾能力:数据恢复兜底
规模和收益
- 性能提升10倍+
- X大客户:PB级/天流量写入,存储规模数十PB
- 应用场景:容器/CVM基础设施、物联网、游戏、计量等
- 客户类型:游戏、教育、新能源头部企业
未来展望
- 基于负载的流量调度:
- 基于集群节点负载的流量路由
- 一致性Hash环优化
- 全局副本元信息管理
- 查询性能提升:
- 基于查询规模预估调度
- GooseFS加速数据拉取(性能提升100%)
- 算子并行和优化
- 百万TS秒级查询