一月份,我们发布了一篇关于Prometheus 公开存在第一年 的博文,总结了对我们来说一段美妙的旅程,也希望它对您来说是一个创新且有用的监控解决方案。自那时起,Prometheus 也加入了云原生计算基金会(Cloud Native Computing Foundation),与我们同行的还有Kubernetes,它是继 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,该 API 允许将样本存储在任意存储系统中。
- 几个服务发现集成是新的,需要跟上快速发展的系统。因此,与 Kubernetes、Marathon、Azure 和 EC2 的集成仍处于 Beta 状态,可能会发生变化。但是,变化将明确宣布。
- 精确的标志含义可能会根据需要发生变化。但是,变化绝不会导致服务器无法使用之前的标志配置启动。
- 作为服务器一部分的 Go 包的 API。
- 由 Web UI 生成的 HTML。
- Prometheus 自身的 `/metrics` 端点中的指标。
- 确切的磁盘格式。然而,潜在的变化将向前兼容并由 Prometheus 透明处理。
那么 Prometheus 现在就完整了吗?
当然不是。我们还有漫长的路线图,充满了待实现的强大功能。Prometheus 不会在未来的几年里停留在 1.x 版本。基础设施领域正在快速发展,我们完全打算让 Prometheus 与之共同进步。这意味着我们将始终愿意质疑过去的工作,并乐于放弃那些失去关联性的事物。未来会有新的 Prometheus 主版本,以推动诸如持久性长期存储、更新的 Alertmanager 版本、内部存储改进以及许多我们尚不知道的事物等计划。
结束语
我们要感谢我们出色的社区,感谢他们对新版本的实地测试、提交 bug 报告、贡献代码、帮助其他社区成员,以及通过参与无数富有成效的讨论来塑造 Prometheus。最终,是你们让 Prometheus 取得了成功。
谢谢你们,并继续努力!