发布日期: 2024-08-09
版本号: v2.54.0

Prometheus 2.54版本发布了远程写入协议2.0的实验性候选版本(默认启用,可通过web.remote-write-receiver.accepted-protobuf-messages功能标志禁用)。该版本包含多项重要更新:远程写入新增元数据WAL记录功能(需开启metadata-wal-records),修复了未来时间戳样本的拒绝逻辑;PromQL引入limitk()limit_ratio()聚合运算符,支持数值字面量下划线分隔(如1_000_000),优化了sum()的Kahan求和算法,并改进了原生直方图函数性能;TSDB优化了索引查询、删除陈旧序列及锁机制,提升对乱序原生直方图样本的支持;正则表达式实现多前缀/字面量模式优化。此外,修复了远程写入数据损坏、Alertmanager发现更新异常、LabelNames API稳定性等关键问题,并优化了AWS/Docker/OpenStack服务发现机制。部分功能如直方图UI显示、数值与时长互换仍标记为实验性。此版本由Prometheus团队及多位贡献者共同完成。

更新内容 (中文)

详见原始内容

更新内容 (原始)

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 and queue_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 and histogram_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] TSDB: Small optimisation: streamline special handling for out-of-order data. #14396,#14584
  • [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

Many thanks to the Prometheus Team and contributors: @zenador @jjo @rexagod @darshanime @charleskorn @fpetkovski @carrieedwards @colega
@pracucci @akunszt @DrAuYueng @paulojmdias @Maniktherana @rabenhorst
@saswatamcode @B1F030 @yeya24 @rapphil @liam-howe-maersk @jkroepke @FUSAKLA @Ranveer777

下载链接