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 的升级路径文档。