Prometheus 3.0 问世,历经七年打磨,新增了哪些令人兴奋的功能

科技   2025-01-18 08:12   北京  

Prometheus 的最新版本堪称一个意义非凡的里程碑,要知道,这可是其历经七载时光后的首次重大版本发布。回首过往,Prometheus 一路披荆斩棘,实现了长足的发展与进步。它从一个仅被早期尝鲜者青睐的项目,已然蜕变成为云原生监控堆栈中不可或缺的标准组件。而此次发布的 Prometheus 3.0,主要在延续过往的辉煌征程,一方面增添了诸多令人振奋的全新功能,另一方面又在极大程度上确保了与先前版本的稳定性及兼容性,可谓是在传承与创新之间找到了完美的平衡点。

值得一提的是,完整的 3.0 版本不仅在 beta 版的基础上新增了若干功能,还引入了一些额外的重大变更,这些内容我将在本文中为大家详细阐述。

01 新 UI

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

全新的 UI 进行了彻底重构,不仅有效减少了界面的繁杂感,还呈现出更为现代的外观风格。同时,增添了一系列实用的新功能,比如备受瞩目的 PromLens 式树形视图。此次 UI 升级采用了更为先进的技术堆栈,这一举措极大地提升了未来维护工作的便捷性。若您想深入了解新 UI 的更多细节,不妨查阅 Julius 在 PromLabs 博客上发表的详尽文章。对于那些习惯旧 UI 的用户,可通过启用“old-ui”功能标志,临时切换回旧版界面。需要注意的是,由于新 UI 尚未在实际使用场景中得到充分检验,因此难免可能存在一些问题。自 beta 版发布以来,用户界面还进行了一项重要更新,即现在支持 UTF-8 格式的指标和标签名称,进一步提升了用户在处理各类字符集时的便利性。

02 远程写入 2.0

Remote-Write 2.0 对先前的协议版本进行了迭代升级,新增了对众多新元素的原生支持,这些元素涵盖元数据、样本、创建时间戳以及原生直方图等。此版本还运用了字符串内部化技术,旨在降低压缩和解压缩过程中的有效负载大小以及 CPU 使用率。在出现部分写入的情况时,它能够提供更完善的处理机制,为客户端反馈更多详细信息。若需获取更多详细内容,可查看此处。

03 UTF - 8 支持

如今,Prometheus 默认允许在指标和标签名称中使用所有有效的 UTF - 8 字符,标签值方面则延续了 2.x 版本就已支持的情况。用户务必要确保其指标生成器的配置能够传递 UTF - 8 格式的名称。若存在任何一方不支持 UTF - 8,那么指标名称将采用传统的下划线替换方法进行转义。在编写 PromQL 查询以检索 UTF - 8 指标时,用户既可以使用新的引用语法,也可以手动指定 name 标签名称。目前,仅有 Go 客户端库完成了更新以支持 UTF - 8,不过对于其他语言的支持也会在不久后添加。

04 OTLP 支持

为了践行对 OpenTelemetry 的承诺,Prometheus 3.0 推出了多项新功能,旨在提升与 OpenTelemetry 的互操作性。

Prometheus 能够配置为 OTLP 指标协议的原生接收器,通过 /api/v1/otlp/v1/metrics 端点接收 OTLP 指标。若想了解将 OTLP 指标流量引入 Prometheus 的最佳实践方法,可查阅我们的相关指南。

05 UTF - 8 规范化

随着 Prometheus 3.0 对 UTF - 8 的支持,用户在存储和查询 OpenTelemetry 指标时,无需再对指标和标签名称进行诸如将点替换为下划线这类繁琐的更改。值得留意的是,这一改进显著减少了用户和工具在理解 OpenTelemetry 语义约定或 SDK 中定义的内容与实际可查询内容之间差异时所产生的困惑。为了实现 OTLP 摄取,Prometheus 3.0 针对不同的转换策略提供了实验性支持。具体详情可查看 Prometheus 配置中的 otlp 部分。

06 原生直方图

原生直方图作为 Prometheus 的一种指标类型,为经典直方图提供了一种更高效、成本更低的替代方案。与经典直方图不同,原生直方图无需依据数据集来选择(且可能需要后续更新)存储桶边界,它具备基于指数增长的预设存储桶边界。

目前,原生直方图仍处于实验阶段,默认并未启用。若要启用该功能,可通过传递 --enable-feature=native-histograms 这一参数来实现。需要注意的是,原生直方图在某些方面,比如文本格式以及访问器函数 / 运算符等,仍在紧锣密鼓地设计当中。

07 重大更改

Prometheus 社区始终秉持着在主要版本中尽量不破坏现有功能的原则。在新的主要版本发布之际,我们也借此契机着手清理了一些长期存在但相对细微的问题。也就是说,Prometheus 3.0 中包含了一些重大更改。这些更改涵盖了功能标志、配置文件、PromQL 以及抓取协议等方面。

为了知晓您的设置是否会受到影响,以及明确需要采取哪些应对措施,请仔细阅读迁移指南。

08 性能

自 Prometheus 2.0 发布以来,社区所取得的成就令人瞩目。我们都对数据成果充满兴趣,因此,不妨一同来庆贺我们在 TSDB 模式下针对 CPU 和内存使用方面所实现的效率提升。如下,您可以看到在一个配备 8 个 CPU 且拥有 49 GB 可分配内存的节点上,三个不同 Prometheus 版本之间的性能数据对比:

  • 2.0.0(发布于 7 年前)
  • 2.18.0(发布于 4 年前)
  • 3.0.0(当前版本)

09 升级体验

如果你是从 Prometheus 2.x 升级,请查看迁移指南,以获取有关,必须进行的任何调整的更多信息。

也要注意,官方强烈建议在升级到 v3.0 之前升级到 v2.55。可以从 v3.0 回滚到 v2.55,但不能回滚到更早的版本。

- END -

IT168与ITPUB技术社区强强联手,收集数百款主流数据库产品,重磅推出“数据库全景图”,旨在打造一款集知识普及、产品对比、选型参考于一体的综合性资源平台。“数据库全景图(11月版)”可扫描上方左侧二维码回复关键词获取,识别右侧二维码直达“数据库全景图”链接(右上角浏览器打开获取更好体验)。

ITPUB
ITPUB官方账户,分享社区技术干货内容,了解社区最新动态,参与社区精彩活动。
 最新文章