Prometheus 达到 1.0 版本
2016 年 7 月 18 日作者 Fabian Reinartz 代表 Prometheus 团队
今年一月,我们发布了一篇博客文章,回顾了 Prometheus 公开开发的第一年。我们总结了这一年对我们来说非凡的历程,也希望它能成为对你们而言创新且实用的监控解决方案。自那以后,Prometheus 也加入了云原生计算基金会 (CNCF)。作为继 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 覆盖面很广,有些部分肯定比其他部分更成熟。这里分为两个简单的类别:稳定 (stable) 和 不稳定 (unstable)
自 v1.0 起及整个 1.x 系列均保持稳定:
- 查询语言和数据模型
- 告警和记录规则
- 摄取和公开格式 (Ingestion exposition formats)
- 配置标志 (Configuration flag) 名称
- HTTP API(仪表盘和 UI 使用)
- 配置文件格式(不包括下述非稳定的服务发现集成)
- 与 Alertmanager 0.1+ 的告警集成(在可预见的未来)
- 控制台模板语法和语义
不稳定,可能会在 1.x 中变更:
- 远程存储集成(InfluxDB、OpenTSDB、Graphite)仍处于实验阶段,最终将被一个通用的、更复杂的 API 所取代,该 API 将允许在任意存储系统中存储样本。
- 一些服务发现集成是新的,需要跟上快速发展的系统。因此,与 Kubernetes、Marathon、Azure 和 EC2 的集成仍处于测试阶段,可能会有所变动。不过,任何变动都会提前明确通告。
- 确切的标志含义可能会根据需要进行调整。但是,这些变更绝不会导致服务器因之前的标志配置而无法启动。
- 作为服务器一部分的 Go 包的 API。
- 由 Web UI 生成的 HTML。
- Prometheus 自身
/metrics端点中的指标。 - 确切的磁盘格式。但潜在的变更将是向后兼容的,并由 Prometheus 透明处理。
所以 Prometheus 现在已经完成了吗?
绝对不是。我们面前还有很长的路线图,有许多伟大的功能需要实现。Prometheus 不会只停留在 1.x 版本。基础设施领域发展迅速,我们完全打算让 Prometheus 与之共同进化。这意味着我们仍然愿意质疑我们过去的做法,并乐于抛弃那些已经失去意义的东西。未来将会有新的 Prometheus 主要版本来推动我们的计划,例如持久化的长期存储、新版本的 Alertmanager、内部存储优化,以及许多我们目前还未知的功能。
结语
我们想感谢我们优秀的社区,感谢你们进行现场测试、提交错误报告、贡献代码、帮助其他成员,并通过参与无数次富有成效的讨论来塑造 Prometheus。归根结底,是你们让 Prometheus 取得了成功。
谢谢大家,继续加油!