Prometheus 3.14.0:区间时长语法默认启用,rate()/increase() 可以改用起始时间戳
CHANGELOG:
发布版本 3.14.0,日期 2026-08-17。这一版主要动了两块:PromQL 的 duration expressions 从 feature flag 后面拿出来默认开启,以及围绕「样本起始时间戳」的一组实验能力——从 start_timestamp() 函数到 rate()/increase() 的外推替代方案。
CHANGE:默认行为变了
API 层面,/api/v1/query 和 /api/v1/query_range 的 stats 查询参数开始弃用。true 和 all 以外的取值仍然会开启基础统计,但会返回一条弃用警告,下一个大版本会直接拒绝这些值。#19124
PromQL 层面有两处:
- duration expressions 默认启用,
promql-duration-exprfeature flag 现在是一个 no-op。之前要靠 flag 打开的区间表达式时长写法,现在直接可用。#19033 first_over_time转正为 stable,不再需要promql-experimental-functionsfeature flag。#19093
FEATURE:起始时间戳一线
实验性功能里最成体系的是 start timestamp:
- 新增实验函数
start_timestamp(instant-vector),返回给定向量中每个样本的起始时间戳。需要use-start-timestampsfeature flag。#19089 rate()和increase()允许用起始时间戳作为 rate 外推的替代方案。同样藏在use-start-timestamps后面。#18619- TSDB 增加对在 histogram 和 float histogram 中编码起始时间戳的实验支持,由
histograms-st-encodingfeature flag 控制。#18609
另外,Discovery 新增 Oracle Cloud Infrastructure compute service 的 sd_configs。
ENHANCEMENT:OTLP 冲突告警与 TSDB 指标
OTLP 侧,当属性名经过 sanitization 后撞到同一个 Prometheus label,现在会发警告——比如 k8s.pod.name 和 k8s_pod_name 都会变成 k8s_pod_name。同时暴露 prometheus_api_otlp_..._warnings_total 指标,按 category 打标签来跟踪这类警告。#18957
Remote write 在 V2 路径下转发 histogram 起始时间戳。
TSDB 新增两个 gauge,跟踪 head 中 native histogram 的 series 和 bucket 数量:#19170
prometheus_tsdb_head_native_histogram_seriesprometheus_tsdb_head_native_histogram_buckets
UI 方面,range selector 和 subquery 里的 PromQL 时长表达式——step()、range()、min_of()、max_of()——现在有语法高亮、自动补全和 linting。#18625
query stats 的 samplesRead 迁移
query stats 响应里的 samplesRead(以及 stats=all 配合 promql-per-step-stats feature flag 时的 samples read)已移到 engine counter prometheus_engine_query_samples_read_total。
顺带回顾 3.12.0
3.12.0 发布于 2026-05-28,内容包括:
- 新增
/api/v1/status/self_metrics端点,以 JSON 返回服务器自身的 metrics; - PromQL 实验函数
start()、end()、range()、step(); auto-reload-config转正为 stable;- UI 支持删除时间序列和清理 tombstones。
Source: