prometheus v2.54.0-rc.0 版本更新介绍
发布日期: 2024-07-30
版本号: v2.54.0-rc.0
Prometheus 2.54版本发布候选版,主要引入远程写入协议2.0的实验性支持(默认启用,可通过
web.remote-write-receiver.accepted-protobuf-messages
功能标志禁用)。本次更新包含多项重要变更:新增PromQL聚合运算符limitk()
和limit_ratio()
,支持数字字面量下划线分隔(如1_000_000),优化sum()的Kahan求和算法,并允许浮点数和持续时间互换。TSDB改进包括无序样本支持优化、索引查询加速、锁机制优化以提升性能,以及元数据WAL记录的实验性功能。正则表达式增强多前缀和字符串匹配效率,服务发现模块(AWS、Docker、OpenStack)新增元数据支持。修复了远程写入未来时间戳拒收、数据损坏、原生直方图运算符错误、规则重载偶发崩溃等关键问题,并优化了告警通知关闭时的未完成消息发送机制。原生直方图UI展示更精确,Agent新增乱序时间窗口配置。部分指标初始化调整,API响应拆分警告与注释信息。
更新内容 (中文)
Release 2.54 带来了远程写入协议 2.0主要新版本的候选版本。当前处于实验阶段,仍可能发生变更。默认启用远程写入 v2,可通过特性标志web.remote-write-receiver.accepted-protobuf-messages
禁用。
- [变更] Remote-Write:
highest_timestamp_in_seconds
和queue_highest_sent_timestamp_seconds
指标初始值改为0 #14437 - [变更] API: 在API响应中将警告与信息注解分离 #14327
- [功能] Remote-Write: 实验性2.0版本,通过特性标志
metadata-wal-records
(默认启用)实现WAL元数据存储 #14395,#14427,#14444 - [功能] PromQL: 新增limitk()和limit_ratio()聚合运算符 #12503
- [优化] PromQL: 支持在数字字面量中使用下划线分隔符(如1_000_000表示百万) #12821
- [优化] PromQL: 浮点数字面量与时间单位可互换(实验性),例如
time() - my_timestamp > 10m
#9138 - [优化] PromQL: 为sum()函数实现Kahan求和算法 #14074,#14362
- [优化] PromQL(实验性原生直方图): 优化
histogram_count
和histogram_sum
函数性能 #14097 - [优化] TSDB: 增强对实验性原生直方图乱序样本的支持 #14438
- [优化] TSDB: 优化索引查找性能 #14393
- [优化] TSDB: 优化陈旧序列删除机制 #14307
- [优化] TSDB: 减少锁竞争以优化序列增删操作 #13286,#14286
- [优化] 正则表达式: 优化含多个前缀的模式匹配 #13843,#14368
- [优化] 正则表达式: 优化含多个字面字符串的模式匹配 #14173
- [优化] AWS服务发现: 暴露__meta_ec2_primary_ipv6_addresses元数据 #14156
- [优化] Docker服务发现: 为多网络容器添加MatchFirstNetwork支持 #10490
- [优化] OpenStack服务发现: 优先使用
flavor.original_name
字段 #14312 - [优化] UI(实验性原生直方图): 提升展示精度 #13680,#14430
- [优化] Agent:
out_of_order_time_window
配置项现支持代理模式 #14094 - [优化] 通知器: 关闭时发送所有未完成的Alertmanager通知 #14290
- [优化] 规则: Rules API新增标签匹配器支持 #10194
- [优化] HTTP API: 错误响应日志中添加请求URL信息 #14209
- [修复] CLI: 生成文档时转义
|
字符 #14420 - [修复] PromQL(实验性原生直方图): 修正原生直方图值之间的二元运算符问题 #14454
- [修复] TSDB: 修复压缩期间LabelNames API可能失败的问题 #14279
- [修复] TSDB: 修复创建查询器失败时可能遗留未完成的OOO读取操作 #14341
- [修复] TSDB: 修正LabelNamesFor中的上下文取消检查 #14302
- [修复] 规则: 修复偶发的重载时panic #14366
- [修复] 配置: YAML序列化时不输出未设置的正则表达式字段 #14004
- [修复] Remote-Write: 拒绝未来时间戳的样本 #14304
- [修复] Remote-Write: 修复应用max_sample_age时可能的数据损坏问题 #14078
- [修复] 通知器: 修复高负载下Alertmanager发现不更新的问题 #14174
- [修复] 正则表达式: 修正部分Unicode字符在大小写不敏感匹配中的问题 #14170,#14299
- [修复] Remote-Read: 解决查询时偶发的段错误问题 #14515
更新内容 (原始)
Release 2.54 brings a release candidate of a major new version of Remote Write: 2.0.
This is experimental at this time and may still change.
Remote-write v2 is enabled by default, but can be disabled via feature-flag web.remote-write-receiver.accepted-protobuf-messages
.
- [CHANGE] Remote-Write:
highest_timestamp_in_seconds
andqueue_highest_sent_timestamp_seconds
metrics now initialized to 0. #14437 - [CHANGE] API: Split warnings from info annotations in API response. #14327
- [FEATURE] Remote-Write: Version 2.0 experimental, plus metadata in WAL via feature flag
metadata-wal-records
(defaults on). #14395,#14427,#14444 - [FEATURE] PromQL: add limitk() and limit_ratio() aggregation operators. #12503
- [ENHANCEMENT] PromQL: Accept underscores in literal numbers, e.g. 1_000_000 for 1 million. #12821
- [ENHANCEMENT] PromQL: float literal numbers and durations are now interchangeable (experimental). Example:
time() - my_timestamp > 10m
. #9138 - [ENHANCEMENT] PromQL: use Kahan summation for sum(). #14074,#14362
- [ENHANCEMENT] PromQL (experimental native histograms): Optimize
histogram_count
andhistogram_sum
functions. #14097 - [ENHANCEMENT] TSDB: Better support for out-of-order experimental native histogram samples. #14438
- [ENHANCEMENT] TSDB: Optimise seek within index. #14393
- [ENHANCEMENT] TSDB: Optimise deletion of stale series. #14307
- [ENHANCEMENT] TSDB: Reduce locking to optimise adding and removing series. #13286,#14286
- [ENHANCEMENT] Regexps: Optimize patterns with multiple prefixes. #13843,#14368
- [ENHANCEMENT] Regexps: Optimize patterns containing multiple literal strings. #14173
- [ENHANCEMENT] AWS SD: expose Primary IPv6 addresses as __meta_ec2_primary_ipv6_addresses. #14156
- [ENHANCEMENT] Docker SD: add MatchFirstNetwork for containers with multiple networks. #10490
- [ENHANCEMENT] OpenStack SD: Use
flavor.original_name
if available. #14312 - [ENHANCEMENT] UI (experimental native histograms): more accurate representation. #13680,#14430
- [ENHANCEMENT] Agent:
out_of_order_time_window
config option now applies to agent. #14094 - [ENHANCEMENT] Notifier: Send any outstanding Alertmanager notifications when shutting down. #14290
- [ENHANCEMENT] Rules: Add label-matcher support to Rules API. #10194
- [ENHANCEMENT] HTTP API: Add url to message logged on error while sending response. #14209
- [BUGFIX] CLI: escape
|
characters when generating docs. #14420 - [BUGFIX] PromQL (experimental native histograms): Fix some binary operators between native histogram values. #14454
- [BUGFIX] TSDB: LabelNames API could fail during compaction. #14279
- [BUGFIX] TSDB: Fix rare issue where pending OOO read can be left dangling if creating querier fails. #14341
- [BUGFIX] TSDB: fix check for context cancellation in LabelNamesFor. #14302
- [BUGFIX] Rules: Fix rare panic on reload. #14366
- [BUGFIX] Config: In YAML marshalling, do not output a regexp field if it was never set. #14004
- [BUGFIX] Remote-Write: reject samples with future timestamps. #14304
- [BUGFIX] Remote-Write: Fix data corruption in remote write if max_sample_age is applied. #14078
- [BUGFIX] Notifier: Fix Alertmanager discovery not updating under heavy load. #14174
- [BUGFIX] Regexes: some Unicode characters were not matched by case-insensitive comparison. #14170,#14299
- [BUGFIX] Remote-Read: Resolve occasional segmentation fault on query. #14515
下载链接
- prometheus-2.54.0-rc.0.darwin-amd64.tar.gz
- prometheus-2.54.0-rc.0.darwin-arm64.tar.gz
- prometheus-2.54.0-rc.0.dragonfly-amd64.tar.gz
- prometheus-2.54.0-rc.0.freebsd-386.tar.gz
- prometheus-2.54.0-rc.0.freebsd-amd64.tar.gz
- prometheus-2.54.0-rc.0.freebsd-arm64.tar.gz
- prometheus-2.54.0-rc.0.freebsd-armv6.tar.gz
- prometheus-2.54.0-rc.0.freebsd-armv7.tar.gz
- prometheus-2.54.0-rc.0.illumos-amd64.tar.gz
- prometheus-2.54.0-rc.0.linux-386.tar.gz
- prometheus-2.54.0-rc.0.linux-amd64.tar.gz
- prometheus-2.54.0-rc.0.linux-arm64.tar.gz
- prometheus-2.54.0-rc.0.linux-armv5.tar.gz
- prometheus-2.54.0-rc.0.linux-armv6.tar.gz
- prometheus-2.54.0-rc.0.linux-armv7.tar.gz
- prometheus-2.54.0-rc.0.linux-mips.tar.gz
- prometheus-2.54.0-rc.0.linux-mips64.tar.gz
- prometheus-2.54.0-rc.0.linux-mips64le.tar.gz
- prometheus-2.54.0-rc.0.linux-mipsle.tar.gz
- prometheus-2.54.0-rc.0.linux-ppc64.tar.gz
- prometheus-2.54.0-rc.0.linux-ppc64le.tar.gz
- prometheus-2.54.0-rc.0.linux-riscv64.tar.gz
- prometheus-2.54.0-rc.0.linux-s390x.tar.gz
- prometheus-2.54.0-rc.0.netbsd-386.tar.gz
- prometheus-2.54.0-rc.0.netbsd-amd64.tar.gz
- prometheus-2.54.0-rc.0.netbsd-arm64.tar.gz
- prometheus-2.54.0-rc.0.netbsd-armv6.tar.gz
- prometheus-2.54.0-rc.0.netbsd-armv7.tar.gz
- prometheus-2.54.0-rc.0.windows-386.tar.gz
- prometheus-2.54.0-rc.0.windows-386.zip
- prometheus-2.54.0-rc.0.windows-amd64.tar.gz
- prometheus-2.54.0-rc.0.windows-amd64.zip
- prometheus-2.54.0-rc.0.windows-arm64.tar.gz
- prometheus-2.54.0-rc.0.windows-arm64.zip
- prometheus-web-ui-2.54.0-rc.0.tar.gz
- sha256sums.txt