Prometheus 3.0 Beta 发布
2024 年 9 月 11 日作者 Prometheus 团队
Prometheus 团队自豪地宣布 Prometheus 3.0-beta 版本现已可用!您可以在此处下载。按照 beta 版本的惯例,我们不建议用户将 Prometheus 3.0-beta 安装在关键生产系统上,但我们希望每个人都能对其进行测试并发现错误。
总的来说,唯一的重大更改是移除了已弃用的特性标志。Prometheus 团队努力确保向后兼容性,不破坏现有安装,因此下面描述的所有新功能都建立在现有功能之上。大多数用户应该能够直接使用 Prometheus 3.0,无需进行任何配置更改。
新增功能
自 Prometheus 2.0 发布以来的 7 年里,共有超过 7500 次提交,新功能和修复多不胜数。但我们仍想重点介绍一些重大的、引人注目的及破坏性更改。我们需要社区中的每个人都进行尝试,并报告您可能发现的任何问题。我们收到的反馈越多,最终的 3.0 版本就会越稳定。
新用户界面
Prometheus 3.0 的亮点之一是其全新 UI,该 UI 默认启用
该 UI 已完全重写,减少了杂乱,外观和感觉更现代化,增加了PromLens 风格的树状视图等新功能,并且通过使用更现代的技术栈,将使未来的维护更加容易。
您可以在Julius 在 PromLabs 博客上的详细文章中了解有关新 UI 的更多信息。用户可以通过使用 old-ui
特性标志暂时启用旧 UI。由于新 UI 尚未经过实战检验,因此很可能仍然存在错误。如果您发现任何错误,请在GitHub 上报告。
远程写入 2.0
远程写入 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 指标协议的本地接收器,在 /api/v1/otlp/v1/metrics 端点接收 OTLP 指标。
原生直方图
原生直方图是一种 Prometheus 指标类型,与传统直方图相比,它提供了更高的效率和更低的成本。原生直方图无需根据数据集选择(并可能需要更新)桶边界,而是具有基于指数增长的预设桶边界。
原生直方图仍处于实验阶段,尚未默认启用,可以通过传递 --enable-feature=native-histograms
开启。原生直方图的某些方面,如文本格式和访问器函数/运算符,仍在积极设计中。
其他重大更改
以下特性标志已移除,改为默认启用。这些标志的引用应从配置中移除,从 Prometheus 3.0 版本开始将不再识别。
promql-at-modifier
promql-negative-offset
remote-write-receiver
no-scrape-default-port
new-service-discovery-manager
范围选择现在为左开右闭,这将避免在极少数情况下操作中包含超出预期的数据点。
代理模式现已稳定,并拥有自己的配置标志,而不是特性标志