请参与 Prometheus 用户调研(2026 年 3 月版) ,帮助社区确定未来开发工作的优先级!

宣布 Prometheus 2.0

2017年11月8日作者 Fabian Reinartz 代表 Prometheus 团队

大约一年半前,我们发布了 Prometheus 1.0。这次发布标志着该项目的一个重要里程碑。我们实现了一系列广泛的功能,构成了 Prometheus 简单而极其强大的监控理念。

自那时起,我们添加并改进了各种服务发现集成,扩展了 PromQL,并对远程 API 进行了初步迭代实验,以实现可插拔的长期存储解决方案。

但还有什么变化值得发布一个主要版本呢?

Prometheus 2.0

Prometheus 拥有简单且稳健的操作模型,深受用户喜爱。然而,基础设施领域并未停滞不前,像 Kubernetes 和 Mesos 这样的项目正在迅速改变软件部署和管理的方式。监控环境变得日益动态。

我们越来越感受到这给 Prometheus 性能带来的压力。存储子系统需要针对预期的负载进行仔细配置。Prometheus 1.6 凭借其自动调优功能极大地缓解了这一痛点。尽管如此,我们的用户仍不可避免地会遇到一些硬性限制。

存储

2017 年初,内部开始发生变化。起初只是为了测试一种新的、性能更高的时序数据库而进行的实验,很快在实际基准测试中得到了验证。在过去的六个月里,我们一直忙于将这项工作稳定为一个 独立的时序数据库 ,并将其重新集成到 Prometheus 本身中。其结果是一个性能显著提升的 Prometheus 2.0,在几乎所有维度上都有改进。查询延迟更加一致,尤其是在面对高序列流失(series churn)时表现更好。在不同的真实生产场景中测量的资源消耗也显著降低。

  • CPU 使用率 相比 Prometheus 1.8 降低了 20% - 40%
  • 磁盘空间占用 相比 Prometheus 1.8 降低了 33% - 50%
  • 在没有大量查询负载的情况下,磁盘 I/O 平均通常 <1%

Prometheus 1.8 vs 2.0 resource comparison

它也已做好充分准备,能够在未来几年应对现代计算环境日益动态的特性。

过时处理 (Staleness handling)

此外,为了使 Prometheus 的体验更加一致和直观,我们进行了许多大大小小的更改。最值得注意的是过时处理 ,这是路线图中历史最悠久且最受期待的功能之一。通过这些改进,消失的监控目标或来自这些目标的序列现在会被明确追踪,这减少了查询伪影并提高了警报响应速度。

其他改进

Prometheus 2.0 还内置了对整个数据库进行快照备份 的支持。

我们还将记录和警报规则从自定义格式迁移到了通用的 YAML 格式。这使得与配置管理和模板系统的集成更加容易。

此外还进行了许多额外的细微更改和清理工作。请查阅 Prometheus 1.x 到 2.0 迁移指南,以获取更改的完整概述以及如何调整您的设置。但请放心,Prometheus 2 依然是您所熟悉的 Prometheus——只是速度更快,操作和使用更加简单。

下一步计划

新的存储子系统被设计为易于访问和扩展的。这既适用于直接集成到 Prometheus 中的新功能,也适用于可以构建在其之上的自定义工具。简单开放的存储格式和库还允许用户轻松构建动态保留策略等自定义扩展。这使得存储层能够满足广泛的需求,而无需将复杂性引入 Prometheus 本身;从而让它专注于其核心目标。

远程 API 将继续演进,以满足对长期存储的需求,同时不牺牲 Prometheus 通过简单性实现可靠性的模型。

试用一下!

您可以像往常一样通过下载我们的 官方二进制文件容器镜像  来试用 Prometheus 2.0。请参阅 入门 页面,了解如何安装和运行 Prometheus 的教程。

如果您是从 Prometheus 1.x 升级,请查看我们的 迁移指南,了解您需要进行的调整,以及如何在迁移期间使用远程 API 读取旧版 Prometheus 服务器的数据 

最后,我们要感谢所有广泛测试预发布版本并帮助我们调试问题的用户。没有你们,这一巨大的里程碑是不可能实现的!