首页 健康生活文章正文

prometheus v3.5.0 发布详解:长周期支持版本带来的全新特性与性能

健康生活 2025年07月27日 15:52 1 admin
prometheus v3.5.0 发布详解:长周期支持版本带来的全新特性与性能


2025年7月14日,Prometheus 官方发布了 v3.5.0 版本,该版本作为一个长期支持(LTS)版本,聚焦于稳定性和性能的提升,同时引入了多项创新功能和增强,进一步强化了其在监控领域的领导地位。本文将对 Prometheus v3.5.0 版本进行深入解读,全面梳理其新增特性、优化改进以及修复的关键 bug,帮助广大用户和运维人员快速掌握本次版本的变化与升级价值。


一、Prometheus 版本背景及定位

Prometheus 一直是云原生和容器监控的首选开源方案,随着应用架构的复杂度和规模不断升级,如何保证监控系统的稳定性、性能和易用性成为重中之重。本次的 v3.5.0 版本不仅是社区的长周期支持版本(LTS),意味着该版本将获得更长时间的维护和安全补丁支持,也是在功能与性能上一次重要的里程碑。

官方文档中指出,v3.5.0 兼顾了新功能开发与已有功能的兼容性,确保没有已知的破坏性变更,为企业级用户的升级提供了坚实保障。


二、核心新功能综述

1. PromQL 增强:实验性元信息标签

本版本在 PromQL(Prometheus Query Language)引入了实验性质和单位的元数据标签,作为实验特性由“type-and-unit-labels”特性标记控制。通过此功能,用户可以对指标增加类型和单位的注解,提升数据查询和展示的一致性,有助于多维度指标分析。例如,可以区分不同类型的计数器、延迟指标和比率。此举极大增强了查询的语义表达能力。

2. PromQL 新查询函数

新增了 ts_of_min_over_time、ts_of_max_over_time 和 ts_of_last_over_time 等时间戳查询函数,以实验特性“experimental-promql-functions”启用。这些新函数让用户能直接查询时间序列中最小值、最大值或最后一次出现时间的具体时间戳,扩展了 PromQL 在复杂时序逻辑分析中的能力。

3. Scraping 模块优化

增加了全局配置参数 always_scrape_classic_histograms,用以控制是否在存在原生 histograms 时,仍采集传统的经典直方图指标。该配置帮助用户兼容旧版本监控数据,避免因指标格式变化导致监控缺失风险。

4. OTLP 采集器新增配置选项

针对 OpenTelemetry Protocol(OTLP)新增了 promote_all_resource_attributes 和 ignore_resource_attributes 两个配置选项。前者允许将所有资源属性提升为标签,方便指标维度扩展;后者则支持忽略指定资源属性,提高数据采集效率和标签管理灵活性,满足多样化采集需求。

5. 新增 STACKIT Cloud 服务发现

Prometheus 增加了对 STACKIT Cloud 的服务发现支持,实现自动发现该云平台上的目标服务,扩展了云环境下 Prometheus 监控的适用范围,为使用 STACKIT 的用户提供即刻开箱即用的监控集成方案。


三、重要增强与优化

1. 服务发现和标签选择器

Hetzner 服务发现模块新增 label_selector 功能,支持通过标签过滤服务器,大幅提升目标筛选的灵活度。通过标签选择器,用户可以精细控制监控对象,避免无意义负载,提高抓取效率。

2. PromQL 参数支持提升

PromQL 聚合函数如 quantile、topk 现在支持非固定常量参数输入,允许动态计算和更丰富的查询表达式,实现更复杂的指标处理场景。

3. UI 使用体验升级

• /rules 页面新增简单筛选功能,方便用户快速定位规则。

• /targets 页面增加搜索框自动清空和更直观的目标总数统计,优化了日常操作便捷性。

• 查询结果中的悬浮提示显示查询统计信息,提升调试查询的效率。

• 图表视图新增告警信息和查询警告,增强故障排查时的可视化反馈。

4. 规则引擎优化

启动时规则校验提前加入无误解析检查,避免因规则错误导致运行异常。Promtool 增强支持模糊的浮点比较,辅助开发测试验证规则的有效性。


四、性能改进亮点

• PromQL查询效率显著提升,通过重用 histogramStatsIterator 和存储结构减少计算开销。

• UI性能调优包括针对 /targets 页的搜索防抖和缓存优化,消除全局重渲染卡顿,提升用户界面响应速度。

• Kubernetes 服务发现利用缓存索引器代替传统存储结构,显著加快数据同步和检索。

• TSDB 底层支持启用 Direct IO 模式写入数据块,减轻 I/O 压力,提高数据写入性能。

• 标签编码方式简化与加速,有助于监控大规模环境下的标签处理。

• Scrape 模块支持同时并行重新加载多个抓取池,缩短配置刷新时间。


五、关键 Bug 修复详述

v3.5.0 修复了多个影响查询准确性和系统稳定性的严重 bug,包括:

• 修复了 PromQL 中 native histogram last_over_time 函数的统计错误,保证直方图数据一致性。

• 纠正了聚合表达式语法错误时错误位置提示的范围问题,提升调试准确性。

• 防止在存在同时间戳下经典与原生直方图共存时产生重复指标的问题。

• 修正了时间区间单位换算中的舍入问题(如1001ms向1秒的转化),避免误差影响查询。

• 统一了 histogram_count 和 histogram_sum 的统计一致性,特别是在 NaN 处理上进行了改进。

• 修复了一元运算符优先级错误,修正时长表达式计算逻辑不正确的问题。

• PromQL 中平均值聚合(avg 和 avg_over_time)的跨版本行为更一致。

• UI新增对查询告警及提示的完整展示,提升用户体验。

• 服务发现模块避免死锁现象,增强稳定性。

• remote_write 对 Azure AD 验证扩展支持了空 client_id,方便使用系统管理身份认证。

• 解决了采集模块中罕见的内存损坏问题,提升系统安全性。

• 增强了对自定义桶和指数直方图混用场景的支持,避免采集中断。

• OTLP 采集器默认配置修正,避免未设置配置块时的异常行为。


六、升级建议与总结

Prometheus v3.5.0 作为一款长期支持的稳定版本,适合需要持续运行和长期维护的生产环境。推荐用户尽快升级以享受性能提升、稳定性增强以及新功能带来的便利。

升级前请确保:

• 备份现有规则和配置文件;

• 关注 Prometheus 组件如 Alertmanager、Grafana 等的兼容性;

• 评估实验性功能的使用需求和风险;

• 关注集群规模和监控指标变化,合理调优采集频率和存储设置。

本次版本全面提升了 Prometheus 的查询能力、采集灵活性与系统性能,为构建稳定可靠的云原生监控体系提供了坚实基础。未来 Prometheus 将继续秉持开源精神,结合社区反馈推动监控技术不断演进。


七、附录:版本更新主要点汇总

类型

更新内容简述

新特性

PromQL元标签支持,新增时间戳函数,OTLP配置扩展

性能优化

查询迭代器复用,Direct IO写入,UI防抖及缓存优化

UI改进

简单规则过滤,目标页面搜索清空,总目标统计更准确

服务发现增强

Hetzner标签过滤,STACKIT 云服务发现

Bug修复

直方图统计错误,查询错误提示,内存安全性,死锁修复


·


我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。


欢迎关注“福大大架构师每日一题”,让AI助力您的未来发展。

·

发表评论

泰日号Copyright Your WebSite.Some Rights Reserved. 网站地图 备案号:川ICP备66666666号 Z-BlogPHP强力驱动