Prometheus 3.0 Beta 版发布

Prometheus 团队自豪地宣布 Prometheus 3.0-beta 版本的发布!您可以在这里下载。按照 beta 版本的惯例,我们建议用户在关键生产系统上安装 Prometheus 3.0-beta,但我们希望每个人都对其进行测试并找出错误。

总的来说,唯一破坏性的更改是删除了已弃用的功能标志。Prometheus 团队努力确保向后兼容性,并且不破坏现有安装,因此下面描述的所有新功能都建立在现有功能之上。大多数用户应该能够开箱即用地试用 Prometheus 3.0,而无需任何配置更改。

新功能

自 Prometheus 2.0 发布以来的 7 年中,已经有超过 7500 次提交,新功能和修复太多,无法一一列出,但我们想指出一些重大且具有突破性的更改。我们需要社区中的每个人都尝试它们并报告您可能发现的任何问题。我们收到的反馈越多,最终 3.0 版本就越稳定。

新 UI

Prometheus 3.0 的亮点之一是其默认启用的全新 UI

New UI query page

该 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 来启用。原生直方图的一些方面,如文本格式和访问器函数/运算符仍在积极设计中。

其他重大更改

已删除以下功能标志,默认情况下启用。应从配置中删除对这些标志的引用,并且从 3.0 版本开始,这些标志将在 Prometheus 中被忽略

  • promql-at-modifier
  • promql-negative-offset
  • remote-write-receiver
  • no-scrape-default-port
  • new-service-discovery-manager

范围选择现在是左开右闭,这将避免在操作中包含比预期更多的点的罕见情况。

代理模式现在是稳定的,并且有自己的配置标志而不是功能标志