发布日期: 2024-11-14
版本号: v3.0.0

本次发布为七年来首个重大版本更新,引入了全新用户界面及默认启用的UTF-8支持,同时包含多项破坏性变更。主要变化包括移除已弃用的功能标志和CLI参数:自动设置GOMAXPROCS和GOMEMLIMIT的功能现默认启用并移除旧标志;废弃配置参数如scrape_classic_histograms更名为always_scrape_classic_histograms;移除对Kubernetes旧版本API的支持;禁用HTTP2远程写入默认值;PromQL范围选择逻辑调整为左开区间等。新增功能包括支持OTLP接收器的UTF-8转义配置、实验性自动重载配置功能,以及代理模式升级为稳定功能。性能优化涵盖并行化TSDB数据删除、内存分配策略改进及正则表达式处理效率提升。修复了UI指标名称显示异常、PromQL聚合计算忽略直方图数据等缺陷,并改进了服务发现机制的稳定性。用户升级前需参考迁移指南,且可通过--enable-feature=old-ui临时切换回旧版界面。

更新内容 (中文)

详见原始内容

更新内容 (原始)

This release includes new features such as a brand new UI and UTF-8 support enabled by default. As this marks the first new major version in seven years, several breaking changes are introduced. The breaking changes are mainly around the removal of deprecated feature flags and CLI arguments, and the full list can be found below. For users that want to upgrade we recommend to read through our migration guide.

  • [CHANGE] Set the GOMAXPROCS variable automatically to match the Linux CPU quota. Use --no-auto-gomaxprocs to disable it. The auto-gomaxprocs feature flag was removed. #15376
  • [CHANGE] Set the GOMEMLIMIT variable automatically to match the Linux container memory limit. Use --no-auto-gomemlimit to disable it. The auto-gomemlimit feature flag was removed. #15373
  • [CHANGE] Scraping: Remove implicit fallback to the Prometheus text format in case of invalid/missing Content-Type and fail the scrape instead. Add ability to specify a fallback_scrape_protocol in the scrape config. #15136
  • [CHANGE] Remote-write: default enable_http2 to false. #15219
  • [CHANGE] Scraping: normalize “le” and “quantile” label values upon ingestion. #15164
  • [CHANGE] Scraping: config scrape_classic_histograms was renamed to always_scrape_classic_histograms. #15178
  • [CHANGE] Config: remove expand-external-labels flag, expand external labels env vars by default. #14657
  • [CHANGE] Disallow configuring AM with the v1 api. #13883
  • [CHANGE] regexp . now matches all characters (performance improvement). #14505
  • [CHANGE] holt_winters is now called double_exponential_smoothing and moves behind the experimental-promql-functions feature flag. #14930
  • [CHANGE] API: The OTLP receiver endpoint can now be enabled using --web.enable-otlp-receiver instead of --enable-feature=otlp-write-receiver. #14894
  • [CHANGE] Prometheus will not add or remove port numbers from the target address. no-default-scrape-port feature flag removed. #14160
  • [CHANGE] Logging: the format of log lines has changed a little, along with the adoption of Go’s Structured Logging package. #14906
  • [CHANGE] Don’t create extra _created timeseries if feature-flag created-timestamp-zero-ingestion is enabled. #14738
  • [CHANGE] Float literals and time durations being the same is now a stable fetaure. #15111
  • [CHANGE] UI: The old web UI has been replaced by a completely new one that is less cluttered and adds a few new features (PromLens-style tree view, better metrics explorer, “Explain” tab). However, it is still missing some features of the old UI (notably, exemplar display and heatmaps). To switch back to the old UI, you can use the feature flag --enable-feature=old-ui for the time being. #14872
  • [CHANGE] PromQL: Range selectors and the lookback delta are now left-open, i.e. a sample coinciding with the lower time limit is excluded rather than included. #13904
  • [CHANGE] Kubernetes SD: Remove support for discovery.k8s.io/v1beta1 API version of EndpointSlice. This version is no longer served as of Kubernetes v1.25. #14365
  • [CHANGE] Kubernetes SD: Remove support for networking.k8s.io/v1beta1 API version of Ingress. This version is no longer served as of Kubernetes v1.22. #14365
  • [CHANGE] UTF-8: Enable UTF-8 support by default. Prometheus now allows all UTF-8 characters in metric and label names. The corresponding utf8-name feature flag has been removed. #14705
  • [CHANGE] Console: Remove example files for the console feature. Users can continue using the console feature by supplying their own JavaScript and templates. #14807
  • [CHANGE] SD: Enable the new service discovery manager by default. This SD manager does not restart unchanged discoveries upon reloading. This makes reloads faster and reduces pressure on service discoveries’ sources. The corresponding new-service-discovery-manager feature flag has been removed. #14770
  • [CHANGE] Agent mode has been promoted to stable. The feature flag agent has been removed. To run Prometheus in Agent mode, use the new --agent cmdline arg instead. #14747
  • [CHANGE] Remove deprecated remote-write-receiver,promql-at-modifier, and promql-negative-offset feature flags. #13456, #14526
  • [CHANGE] Remove deprecated storage.tsdb.allow-overlapping-blocks, alertmanager.timeout, and storage.tsdb.retention flags. #14640, #14643
  • [FEATURE] OTLP receiver: Ability to skip UTF-8 normalization using otlp.translation_strategy = NoUTF8EscapingWithSuffixes configuration option. #15384
  • [FEATURE] Support config reload automatically - feature flag auto-reload-config. #14769
  • [ENHANCEMENT] Scraping, rules: handle targets reappearing, or rules moving group, when out-of-order is enabled. #14710
  • [ENHANCEMENT] Tools: add debug printouts to promtool rules unit testing #15196
  • [ENHANCEMENT] Scraping: support Created-Timestamp feature on native histograms. #14694
  • [ENHANCEMENT] UI: Many fixes and improvements. #14898, #14899, #14907, #14908, #14912, #14913, #14914, #14931, #14940, #14945, #14946, #14972, #14981, #14982, #14994, #15096
  • [ENHANCEMENT] UI: Web UI now displays notifications, e.g. when starting up and shutting down. #15082
  • [ENHANCEMENT] PromQL: Introduce exponential interpolation for native histograms. #14677
  • [ENHANCEMENT] TSDB: Add support for ingestion of out-of-order native histogram samples. #14850, #14546
  • [ENHANCEMENT] Alerts: remove metrics for removed Alertmanagers. #13909
  • [ENHANCEMENT] Kubernetes SD: Support sidecar containers in endpoint discovery. #14929
  • [ENHANCEMENT] Consul SD: Support catalog filters. #11224
  • [ENHANCEMENT] Move AM discovery page from “Monitoring status” to “Server status”. #14875
  • [PERF] TSDB: Parallelize deletion of postings after head compaction. #14975
  • [PERF] TSDB: Chunk encoding: shorten some write sequences. #14932
  • [PERF] TSDB: Grow postings by doubling. #14721
  • [PERF] Relabeling: Optimize adding a constant label pair. #12180
  • [BUGFIX] UI: fix selector / series formatting for empty metric names. #15341
  • [BUGFIX] PromQL: Fix stddev+stdvar aggregations to always ignore native histograms. #14941
  • [BUGFIX] PromQL: Fix stddev+stdvar aggregations to treat Infinity consistently. #14941
  • [BUGFIX] OTLP receiver: Preserve colons when generating metric names in suffix adding mode (this mode is always enabled, unless one uses Prometheus as a library). #15251
  • [BUGFIX] Scraping: Unit was missing when using protobuf format. #15095
  • [BUGFIX] PromQL: Only return “possible non-counter” annotation when rate returns points. #14910
  • [BUGFIX] TSDB: Chunks could have one unnecessary zero byte at the end. #14854
  • [BUGFIX] “superfluous response.WriteHeader call” messages in log. #14884
  • [BUGFIX] PromQL: Unary negation of native histograms. #14821
  • [BUGFIX] PromQL: Handle stale marker in native histogram series (e.g. if series goes away and comes back). #15025
  • [BUGFIX] Autoreload: Reload invalid yaml files. #14947
  • [BUGFIX] Scrape: Do not override target parameter labels with config params. #11029

Full Changelog: https://github.com/prometheus/prometheus/compare/v2.55.0...v3.0.0

下载链接