Prometheus 3.0 Beta 发布
2024年9月11日作者 Prometheus 团队
Prometheus 团队很荣幸地宣布 Prometheus 3.0-beta 版本发布!您可以在此处 下载。如同 Beta 版本发布的传统一样,我们**不**建议用户在关键生产系统上安装 Prometheus 3.0-beta,但我们确实希望每个人都能测试它并找出 bug。
总的来说,唯一的破坏性更改是移除了已弃用的功能标志。Prometheus 团队努力确保向后兼容性,并且不破坏现有安装,因此下面描述的所有新功能都建立在现有功能之上。大多数用户应该能够开箱即用地尝试 Prometheus 3.0,而无需进行任何配置更改。
新增功能
自 Prometheus 2.0 发布以来,7 年间有超过 7500 次提交,因此不可能列出所有新增的单个功能和修复。但有一些重大、醒目且可能产生影响的更改我们想重点介绍。我们需要社区中的每个人都来尝试这些更改并报告发现的任何问题。我们获得的反馈越多,最终的 3.0 版本就会越稳定。
新 UI
Prometheus 3.0 的亮点之一是其全新的 UI,该 UI 默认启用。

UI 已完全重写,更加简洁,外观和感觉更现代化,新增了类似PromLens风格的树形视图等新功能,并且通过使用更现代的技术栈,将使未来的维护更加轻松。
您可以在Julius 在 PromLabs 博客上发布的详细文章 中了解新 UI 的更多常规信息。用户可以通过使用 old-ui 功能标志暂时启用旧 UI。由于新 UI 尚未经过实战检验,因此可能仍然存在 bug。如果您发现任何问题,请在 GitHub 上报告它们 。
远程写入 2.0
Remote-Write 2.0 对之前的协议版本进行了迭代,增加了对元数据、示例、创建时间戳和原生直方图等一系列新元素的本地支持。它还使用字符串驻留来减少压缩和解压缩时的有效载荷大小和 CPU 使用率。更多详情请参阅此处。
OpenTelemetry 支持
Prometheus 旨在成为存储 OpenTelemetry 指标的默认选择,3.0 版本包含了一些重大的新功能,使其成为 OpenTelemetry 指标数据的更佳存储后端。
UTF-8
默认情况下,Prometheus 将允许所有有效的 UTF-8 字符用于指标和标签名称,以及标签值,这与 2.x 版本一样。
用户需要确保他们的指标生成器已配置为传递 UTF-8 名称,如果任一方不支持 UTF-8,指标名称将使用传统的下划线替换方法进行转义。PromQL 查询可以使用新的引号语法编写,以便检索 UTF-8 指标,或者用户可以手动指定 __name__ 标签名称。
并非所有语言绑定都已更新为支持 UTF-8,但主要的 Go 库已经支持。
OTLP 摄取
Prometheus 可以配置为 OTLP Metrics 协议的原生接收器,在 /api/v1/otlp/v1/metrics 端点上接收 OTLP 指标。
原生直方图
原生直方图是一种 Prometheus 指标类型,它提供了比经典直方图更高效、成本更低的替代方案。原生直方图具有基于指数增长的预设桶边界,而不是必须根据数据集选择(并可能更新)桶边界。
原生直方图仍处于实验阶段,尚未默认启用,可以通过传递 --enable-feature=native-histograms 来开启。原生直方图的一些方面,例如文本格式和访问器函数/运算符,仍处于积极设计阶段。
其他破坏性更改
以下功能标志已被移除,取而代之的是默认启用。应从配置中移除对这些标志的引用,并且它们在 Prometheus 3.0 版本之后将被忽略。
promql-at-modifierpromql-negative-offsetremote-write-receiverno-scrape-default-portnew-service-discovery-manager
范围选择现在是左开右闭的 ,这将避免在操作中意外包含比预期更多的点。
Agent 模式现在已稳定,并拥有自己的配置标志而不是功能标志。