Prometheus 1.0 版本发布

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

今年一月,我们发表了一篇关于 Prometheus 公开存在的第一年 的博客文章,总结了我们这段奇妙的旅程,并希望为您提供了一个创新且实用的监控解决方案。此后,Prometheus 还加入了云原生计算基金会,在那里我们与 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 的集成仍处于测试阶段,可能会发生变化。但是,任何更改都会被明确宣布。
  • 标志的确切含义可能会根据需要而改变。但是,更改绝不会导致服务器无法使用之前的标志配置启动。
  • 属于服务器一部分的 Go 包的 API。
  • Web UI 生成的 HTML。
  • Prometheus 自身的 /metrics 端点中的指标。
  • 确切的磁盘格式。然而,潜在的更改将是前向兼容的,并由 Prometheus 透明地处理。

那么 Prometheus 现在已经完成了?

绝对不是。我们前面还有很长的路线图,充满了待实现的强大功能。Prometheus 不会在未来几年都停留在 1.x 版本。基础设施领域正在迅速发展,我们完全打算让 Prometheus 与之共同发展。这意味着我们将继续愿意审视我们过去所做的工作,并乐于抛弃那些已经失去现实意义的东西。未来将会有新的 Prometheus 主要版本,以支持未来的计划,如持久化长期存储、Alertmanager 的新迭代、内部存储改进以及许多我们甚至还不知道的事情。

结束语

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

谢谢你们,请继续保持这出色的工作!