Prometheus 开源开发一年

2016年1月26日作者 Julius Volz

开端

就在一年前的今天,我们正式向全世界发布了 Prometheus。这是一个绝佳的机会,让我们回顾并分享自那时以来该项目所取得的一些美好进展。但首先,让我们从头说起。

尽管我们早在2012年就在GitHub上启动了Prometheus开源项目,但起初我们并没有大肆宣传。我们希望给项目时间来成熟,并能够在没有摩擦的情况下进行实验。Prometheus于2013年在SoundCloud逐步引入生产监控,随后在公司内部得到越来越多的使用,2014年还获得了我们Docker和Boxever的朋友的早期采用。多年来,Prometheus 日趋成熟,尽管它已经解决了人们的监控问题,但对更广泛的公众来说仍然是未知的。

公开亮相

一年前,也就是2015年1月,一切都变了。经过两年多的开发和内部使用,我们觉得Prometheus已经准备好面向更广泛的受众,于是决定通过官方发布博文、一个网站以及一系列相关文章全面公开。发布后第一周,我们已经获得了不少关注,但没有人能预料到一周后发生的事情:一个我们不认识的人(你好啊,jjwiseman!)将Prometheus 网站提交到了 Hacker News,而且他们的帖子居然一路冲到了顶部

这之后事情开始朝着好的方向发展,甚至有点疯狂。我们看到贡献者、邮件列表问题、GitHub 问题、IRC 访问者、会议和聚会演讲请求以及网络上的整体关注度都急剧增加。从一开始,我们就非常幸运地拥有了不断壮大的高质量社区:那些被 Prometheus 吸引来的人也 оказались是非常能干、建设性和高质量的贡献者和用户。从第一天起,从社区获得大量价值的理想开源场景就成为了现实。

所有这些 Hacker News 的热度在 GitHub 星星数上是什么样子的?试试看你能不能在这张图(讽刺的是,这是一张 Gnuplot 图,而不是 Prometheus 图)中找到我们从“暗模式”走出来并受到 Hacker News 冲击的确切时刻

Prometheus GitHub stars

这种关注也使我们登上了 GitHub 全球趋势仓库的第四位

Prometheus trending on GitHub

第一波浪潮之后

在最初的几周之后,涌入的交流攻势有所降温,但我们过去和现在都仍在持续获得不断增长的采用率。

为了让您对这个生态系统有个概念,我们现在拥有

  • GitHub 组织中的33个仓库
  • ~4800个 GitHub 星星(总计)
  • 200多名贡献者
  • 2300多条拉取请求(60多条未关闭)
  • 1100多个问题(300多个未解决)
  • IRC 频道(FreeNode 上的 #prometheus)中有150多人
  • 邮件列表中有250多人,他们创建了300多个话题
  • 20多场 Prometheus 相关演讲和研讨会
  • 100多篇文章和博客帖子

除了对现有项目的无数小功能和错误修复外,社区还为 Prometheus 生态系统贡献了许多自己的项目。其中大部分是将现有系统指标转换为 Prometheus 数据模型的导出器(exporter),但 Prometheus 本身也有一些重要的补充,例如针对KubernetesMarathonEC2等的服务发现机制。

在 Prometheus 引起更多关注后不久,我们还发现了一位贡献者(Fabian),他表现出色,最终加入了 SoundCloud,致力于 Prometheus 的开发。从那时起,他成为了项目中最活跃的开发者,我们要感谢他带来了许多重要的新功能,例如通用服务发现支持、运行时可重载配置、强大的新查询语言特性、自定义查询解析器等等。他目前正在重写Alertmanager的新的 Beta 版本。

最后,我们很荣幸获得了业内主要参与者的认可和采用。Google现在正将其开源容器管理系统Kubernetes原生集成 Prometheus 指标。CoreOS也正在将其用于etcd的监控。DigitalOcean正将其内部监控押宝在 Prometheus 上。到目前为止,以某种方式使用 Prometheus 的公司列表已经太长,无法全部提及,其中包括:GoogleCoreOSDockerBoxeverDigitalOcean金融时报Improbable毕马威等等。甚至世界上最大的数字节DreamHack,在2015年也使用了 Prometheus 来监控其网络基础设施,而FOSDEM也将在2016年这样做。

广受欢迎的仪表盘构建工具Grafana也在2.5版本中添加了原生的 Prometheus 后端支持。鉴于世界各地的人们已经在使用并喜爱 Grafana,我们未来将专注于改进 Grafana 对 Prometheus 的集成,并减少投入我们自己的仪表盘构建工具PromDash上的精力。

随着 Prometheus 生态系统的持续发展,第一批用户开始询问商业支持。尽管 Prometheus 将始终是一个独立的开源项目,但我们的一位核心贡献者(Brian Brazil)最近创立了自己的公司Robust Perception,该公司提供围绕 Prometheus 和一般监控的支持和咨询服务。

有趣的是,2015年也是 Brian 通过在 Prometheus 的查询语言中实现康威生命游戏来证明 Prometheus 查询语言图灵完备的一年。

未来的路

无论从个人还是技术角度来看,我们都对过去一年在 Prometheus 领域发生的一切感到非常兴奋。我们很高兴能为世界提供一种强大的新监控方法,尤其是一种比传统解决方案更适合现代云和基于容器的基础设施的方法。我们也非常感谢所有贡献者,并希望继续为每个人改进 Prometheus。

尽管 Prometheus 现在已经相对成熟,但我们列出了一系列希望在2016年解决的主要目标。重点将是完善新的 Alertmanager 重写版,支持外部长期存储的全面读写集成,以及最终发布 Prometheus 服务器本身的稳定1.0版本。

敬请期待!