2018 年 8 月 9 日,云原生计算基金会(CNCF)宣布开放源代码监控工具 Prometheus 已从孵化状态进入毕业状态。要到达这一评级,一个项目必须展示其增长,文档、有组织的治理流程、对社区可持续性和包容性的承诺。
随着越来越多的组织继续构建云原生应用程序,监控这些分布式应用程序变得非常重要。为此,提升 Prometheus 在 CNCF 中的地位是很有意义的。 CNCF 首席运营官 Chris Aniszczyk 解释道:
自 2012 年成立以来,Prometheus 已成为企业首选的构建现代云原生应用程序的开源监控工具之一。 Prometheus 培养了一个活跃的开发者和用户社区,让技术监督委员会(TOC)有足够的信心让这个项目毕业。
为了从一个孵化状态逐渐升级到一个毕业状态,一个项目必须遵循 CNCF 行为准则,进行独立的安全审计,并披露其治理结构,概述他们计划如何发展他们的社区。开源社区中有很多人对 Prometheus 的毕业表示赞许,包括 SUSE CTO Thomas Di Giacomo。
它是对云原生计算基金会项目(如 Kubernetes 和其他分布式系统)的一个很好的补充。Prometheus 的毕业是对它在技术、社区成熟度以及为广泛的用例带来价值的认可。
SoundCloud(一个流媒体音乐和播客服务)于 2012 年发布了 Prometheus,并于 2016 年 5 月捐献给了 CNCF。自进入孵化阶段以来,已发布了 30 个官方主要和次要版本。
在 2017 年 GOTO 大会演讲中,SoundCloud 的产品工程师 Björn Rabenstein 介绍了开发 Prometheus 背后的一些驱动因素,其中一个因素是因为黑盒监控不是很有效。CERT 高级开发团队负责人 Joeseph Yankel 将黑盒测试定义为:
一种用于检查系统或应用程序的方法(例如检查磁盘空间或 ping 主机),以查看主机或服务是否处于活跃状态,但无法帮助你了解它是如何进入当前状态的。
图片来源:(截屏) https://www.youtube.com/watch?v=hhZrOHKIxLw
相反,Prometheus 采用了一种白盒测试方法,通过时间序列方法可以知道达到当前状态的路径。转而采用这种方法的另一个驱动因素是 SoundCloud 通过 DevOps 的方式来监控他们的系统。Rabenstein 将此称为“你构建,你运行”。如果使用之前的黑盒方法,产品最终被扔给没有太多相关背景的运营团队去管理。而现在,SoundCloud 专注于通过在代码或统计表中包含指标来从头开始构建监控功能。
通过利用白盒监控,Prometheus 的警报机制变得更加智能化。Prometheus 不仅可以依靠阈值,还可以利用时间序列方法。Rabenstein 演示了一个场景,把磁盘的阈值设置为 85%,并使用传统的方式进行监控。然而,即使磁盘可用容量没有达到阈值也会触发警报。而改用时间序列趋势,当趋势线预测即将发生磁盘中断时就会发送警报。Rabenstein 认为,对于轮班待命的工程师来说,为了避免警报疲劳,需要尽量减少不必要的警报。
图片来源:(截屏) https://www.youtube.com/watch?v=hhZrOHKIxLw
除了利用趋势线之外,Prometheus 还提供了一种方法用于构建警报路由树,以及分组或捆绑通知的功能。因此,如果底层的主机出现故障,就只发送单个警报,而不是针对该主机上运行的每个服务发送一个警报。
图片来源:(截屏) https://www.youtube.com/watch?v=hhZrOHKIxLw
有关 Prometheus 的里程碑及其在 CNCF 状态的更多信息,请访问这个博客。
查看英文原文: Prometheus Graduates, Project Status Updated by Cloud Native Computing Foundation
评论