Prometheus 2.0 前瞻
2017 年 4 月 10 日作者 Fabian Reinartz
2016 年 7 月,Prometheus 迎来了 1.0 版本,这是一个重要的里程碑。从那时起,我们添加了许多新功能,例如新的服务发现集成和实验性远程 API。我们也意识到,基础设施领域的新发展(特别是 Kubernetes )使得监控环境变得更加动态。不出所料,这也给 Prometheus 带来了新的挑战,我们发现其存储层存在性能瓶颈。
在过去的几个月里,我们一直在设计和实现一种新的存储概念,以解决这些瓶颈,并实现整体性能的显著提升。这也为添加热备份等功能铺平了道路。
这些变化非常根本,因此将触发一个新的主版本更新:Prometheus 2.0。在正式稳定发布之前,我们还计划在存储之外进行重要的功能改进和变更。然而,今天我们发布了 Prometheus 2.0 的早期 Alpha 版本,以启动新存储的稳定性测试过程。
发布包 和 Docker 容器 现已可用。如果您对存储的新机制感兴趣,请务必阅读深入剖析博客文章 ,了解其内部工作原理。
此版本不兼容旧的存储数据,且不应替换现有的生产部署。要运行它,数据目录必须为空,并且除了 -storage.local.retention 之外,所有现有的存储标志都必须移除。
例如:之前
./prometheus -storage.local.retention=200h -storage.local.memory-chunks=1000000 -storage.local.max-chunks-to-persist=500000 -storage.local.chunk-encoding=2 -config.file=/etc/prometheus.yaml
之后
./prometheus -storage.local.retention=200h -config.file=/etc/prometheus.yaml
这是一个非常早期的版本,出现崩溃、数据损坏和常规错误都是意料之中的。请通过提交至我们的问题追踪器 来帮助我们迈向稳定版本。
实验性的远程存储 API 在此 Alpha 版本中被禁用。抓取暴露时间戳的目标(如联邦 Prometheus 服务器)尚无法工作。存储格式是不兼容的,在后续的 Alpha 版本发布之间仍会发生变更。我们计划在接近稳定发布时记录从 1.0 升级到 2.0 的路径。