Uber开源其大规模指标平台M3
极客时间编辑部
讲述:杜力大小:1.15M时长:02:31
近日,Uber 的工程团队发布了其开源指标平台 M3,该平台已经在 Uber 内部使用多年,据了解,M3 提供了集群管理、聚合、收集、存储管理、分布式时序数据库(TSDB),以及带有其查询语言 M3QL 的查询引擎。
之前,Uber 的指标和监控系统是基于 Graphite 的,由一个共享的 Carbon 集群作为支撑,Nagios 负责告警,Grafana 负责提供仪表盘功能。
这种方式存在着一些问题,比如弹性和集群能力比较差、扩展 Carbon 集群的运维成本比较高,以及缺少副本的功能,这样使得每个节点都面临着单点故障的风险。而新的 M3 指标系统就是为了应对这些问题而产生的。
除了扩展性、全局性、跨数据中心的响应式查询之外,新系统的目标还包括标记指标、维持以 StatsD 和 Graphite 格式发送指标的服务的兼容性。目前,M3 存储了 66 亿条时序数据,每秒收集 5 亿个指标,并且每秒存储 2000 万个指标。
在 Uber,由于很多团队在使用 Prometheus,因此 M3 在构建的时候,集成 Prometheus 作为远程的存储后端。
据介绍,M3 的查询引擎提供了所有指标数据的全局视图,无需跨区域的副本。指标写入到本地区域的 M3DB 实例中,副本对区域来说是本地化的。查询既可以访问本地的区域实例,也可以访问存储指标的远程区域中的协调器。
另外,M3 的存储引擎会将每个指标在区域内生成三个副本。为了减少磁盘的使用,会采用自定义的压缩算法对数据进行压缩。大多数的时序数据库都具有压缩整理(compaction)的特性,较小的数据块会重写到较大的数据块中,并重新组织结构以便于提升查询性能。
Uber 的软件工程师罗布·斯基林顿(Rob Skillington)介绍,M3DB 只有在绝对必要的时候,才会将基于时间的数据压缩整理到一起,比如回填(backfilling)数据,或者将时间窗口索引文件联合在一起具有一定意义的时候。指标使用一个流模型进行缩小采样(downsample),当指标进入的时候,缩小采样的流程就会执行。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论