Prometheus 达到 1.0

2016年7月18日作者 Fabian Reinartz 代表 Prometheus 团队

今年一月,我们发布了一篇博客文章,总结了 Prometheus 公开开发的第一年,这段旅程对我们来说非常精彩,希望对您来说也是一个创新且有用的监控解决方案。自那时以来,Prometheus 也加入了云原生计算基金会 (Cloud Native Computing Foundation),在那里我们与 Kubernetes  一样,作为第二批创始项目,我们齐头并进。

我们近期的工作重点是交付稳定的 API 和用户界面,这以 Prometheus 1.0 版本为标志。我们很高兴地宣布,我们已经实现了这一目标,并且 Prometheus 1.0 于今日发布 

1.0 对您意味着什么?

如果您使用 Prometheus 已经有一段时间了,您可能会注意到,过去一年中,破坏性更改的发生率和影响已显著降低。本着同样的精神,达到 1.0 意味着后续的 1.x 版本将保持 API 稳定。基于 Prometheus API 构建的程序不会因为升级而中断,更新也无需重新初始化存储或更改部署。自定义仪表板和警报在 1.x 版本更新中也将保持不变。我们有信心 Prometheus 1.0 是一个可靠的监控解决方案。现在 Prometheus 服务器已达到稳定的 API 状态,其他模块也将随着时间的推移,遵循其自身稳定版本 1.0 的发布。

注意事项

那么 API 稳定性意味着什么?Prometheus 的表面积很大,有些部分肯定比其他部分更成熟。可以简单地分为两类:稳定不稳定

v1.0 及整个 1.x 系列中的稳定部分

  • 查询语言和数据模型
  • 告警和记录规则
  • 摄取暴露格式
  • 配置标志名称
  • HTTP API(由仪表板和 UI 使用)
  • 配置文件格式(不包括不稳定的服务发现集成,见下文)
  • 未来可预见的范围内,与 Alertmanager 0.1+ 的告警集成
  • 控制台模板语法和语义

不稳定,在 1.x 版本中可能发生变化

  • 远程存储集成(InfluxDB、OpenTSDB、Graphite)仍处于实验阶段,将来会被移除,取而代之的是一个通用、更复杂的 API,允许将样本存储在任意存储系统中。
  • 几个服务发现集成是新推出的,需要跟上快速发展的系统。因此,与 Kubernetes、Marathon、Azure 和 EC2 的集成仍处于 Beta 状态,并可能发生变化。但是,变化将得到清晰的公告。
  • 确切的标志含义可能会根据需要进行更改。但是,更改不会导致服务器无法使用之前的标志配置启动。
  • 服务器所属包的 Go API。
  • Web UI 生成的 HTML。
  • Prometheus 本身 `/metrics` 端点的指标。
  • 确切的磁盘格式。尽管如此,潜在的更改将是向前兼容的,并由 Prometheus 透明处理。

那么 Prometheus 现在就完整了吗?

绝对不是。我们还有很长的路线图,充满了要实现的很棒的功能。Prometheus 不会停留在 1.x 版本很多年。基础设施领域正在迅速发展,我们完全打算让 Prometheus 与之同步发展。这意味着我们将继续愿意质疑我们过去的所作所为,并愿意放弃那些已经失去相关性的东西。将会有新的 Prometheus 主要版本来促进未来的计划,例如持久化长期存储、更新的 Alertmanager 版本、内部存储改进,以及许多我们甚至还不知道的事情。

结束语

我们要感谢我们出色的社区,感谢你们对新版本的测试,提交 bug 报告,贡献代码,帮助其他社区成员,并通过参与无数富有成效的讨论来塑造 Prometheus。归根结底,是你们让 Prometheus 取得成功。

谢谢,并继续保持出色的工作!