prometheus 3.6.0-rc.0 / 2025-08-12¶
为什么要使用Prometheus¶
在数据驱动的时代,你是否曾陷入这样的困境:服务器突然宕机却无人预警,用户体验断崖式下跌却后知后觉,传统监控工具像一座座孤岛,数据碎片化让你在故障排查中疲于奔命?Prometheus正是为解决这些痛点而生——它不仅是监控工具,更是现代分布式系统的“预言家”。它以多维数据模型和灵活的查询语言,将混沌的指标数据转化为清晰的业务洞察,让你在问题发生前捕捉蛛丝马迹。当其他监控方案还在复杂配置中挣扎时,Prometheus已用单二进制部署、自发现机制和强大的社区生态,重新定义了监控的敏捷性与可靠性。
Prometheus是什么¶
Prometheus是一款开源的系统监控与警报工具包,最初由SoundCloud开发,现已成为云原生计算基金会的顶级项目。它的核心是一个时序数据库,通过拉取(Pull)模式从目标收集指标,并支持多维数据查询(PromQL)和可视化。简单来说,它像是系统的“体检医生”,持续测量应用性能、资源使用等指标,并通过仪表盘(如Grafana)和警报规则帮你快速发现问题。
入门示例¶
假设你运营一个电商网站,需要监控订单服务的延迟和错误率。以下是典型实现步骤:
-
暴露指标:在订单服务的Go代码中集成Prometheus客户端库,添加如下代码片段:
-
配置抓取:在Prometheus配置文件中定义抓取目标:
-
编写查询:在Prometheus界面中使用PromQL分析数据:
- 计算每分钟错误请求率:
rate(http_requests_total{status="500"}[1m]) -
获取P99延迟:
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m])) -
设置警报:当错误率持续超过1%时触发告警:
Prometheus 3.6.0-rc.0版本更新¶
2025-08-12发布的3.6.0-rc.0版本主要更新包括:
1. 新增PromQL函数step()及持续时间类型的min()/max()运算(需启用功能标志)。
2. API新增/v1/status/tsdb/blocks端点用于查看数据块元数据。
3. 模板系统增加toDuration()和now()函数支持。
4. OTLP集成增强,支持新的转义策略和范围元数据标签。
5. 修复了查询优化导致的数值误差及原生直方图处理问题。
更新日志¶
- 功能 PromQL:在功能标志
promql-duration-expr后新增step()函数及持续时间的min()/max()运算。 - 功能 API:新增
/v1/status/tsdb/blocks端点,用于暴露已加载数据块的元数据。 - 功能 模板:新增
toDuration()和now()函数。 - 增强 服务发现:支持向目标附加命名空间元数据。
- 增强 OTLP:通过
otlp.translation_strategy支持新的UnderscoreEscapingWithoutSuffixes策略。 - 增强 OTLP:通过
otlp.promote_scope_metadata支持将范围元数据作为指标标签。 - 增强 OTLP:启用功能标志
type-and-unit-labels时添加__type__和__unit__标签。 - 增强 追踪:在抓取期间发送traceparent HTTP头。
- 增强 UI:在“查询页面设置”中增加禁用查询信息和警告的选项。
- 增强 UI:改进对
_count/_sum/_bucket后缀的元数据处理。 - 性能 PromQL:通过内部优化提升性能。
- 修复 配置:修复配置验证期间产生的“未知全局名称转义方法”错误消息。
- 修复 服务发现:修复关闭期间的竞态条件。
- 修复 OTLP:在每个资源的最早和最晚样本之间生成
target_info样本。 - 修复 PromQL:当
NaN作为参数传递给topk()、bottomk()、limitk()和limit_ratio()时失败。 - 修复 PromQL:修复原生计数器直方图的外推计算。
- 修复 PromQL:通过禁用某些优化减少数值误差。
- 修复 PromQL:修复在子查询中使用原生直方图时的不一致问题。
- 修复 PromQL:修复启用功能标志
type-and-unit-labels时直方图的rate()和increase()注解不一致问题。 - 修复 抓取:修复
slicelabels构建中的内存损坏问题。 - 修复 TSDB:修复启用功能标志
created-timestamp-zero-ingestion时追加数据导致的恐慌。 - 修复 TSDB:修复追加空桶原生直方图数据时的恐慌问题。
总结¶
本次更新聚焦于查询语言增强、OTLP集成优化与稳定性提升,新增多项数据查询与处理能力,同时修复了底层存储、查询计算及数据抓取中的关键问题,进一步强化了监控数据的准确性与系统可靠性。