v3.9.0-rc.0
Breaking Changes📦 prometheus
⚠ 1 breaking✨ 5 features🐛 16 fixes🔧 7 symbols
Summary
This release graduates Native Histograms to a stable feature, requiring configuration via `scrape_native_histogram`, and introduces several new features across the API, Promtool, and UI, alongside numerous bug fixes in PromQL and TSDB.
⚠️ Breaking Changes
- Native Histograms are no longer experimental. The feature flag `native-histogram` is now a no-op. You must enable the configuration setting `scrape_native_histogram` to collect Native Histogram samples from exporters.
Migration Steps
- If you rely on Native Histograms, ensure you configure `scrape_native_histogram` in your configuration, as the `native-histogram` feature flag is now ignored.
- Review PromQL queries that might have been affected by fixes related to delayed name removal or OR expressions.
✨ New Features
- API: Added `/api/v1/features` endpoint for clients to determine supported features.
- Promtool: Added `start_timestamp` field for unit tests.
- Promtool: Added `--format seriesjson` option to `tsdb dump` to output only series labels in JSON format.
- Added `--storage.tsdb.delay-compact-file.path` flag for improved interoperability with Thanos.
- UI: Added an option on the query drop-down menu to duplicate a query panel.
🐛 Bug Fixes
- UI: PromQL autocomplete now correctly shows the type and HELP text for OpenMetrics counters ending in `_total`.
- UI: Fixed codemirror-promql incorrectly suggesting label completions after the closing curly brace of a vector selector.
- UI: Query editor no longer suggests a duration unit if one is already present after a number.
- PromQL: Fixed some "vector cannot contain metrics with the same labelset" errors when experimental delayed name removal is enabled.
- PromQL: Fixed possible corruption of PromQL text if the query had an empty `ignoring()` and non-empty grouping.
- PromQL: Fixed resets/changes to return empty results for anchored selectors when all samples are outside the range.
- PromQL: Checked more consistently for many-to-one matching in filter binary operators.
- PromQL: Fixed collision in unary negation with non-overlapping series.
- PromQL: Fixed collision in `label_join` and `label_replace` with non-overlapping series.
- PromQL: Fixed inconsistent results for queries with OR expression when experimental delayed name removal is enabled.
- PromQL: Ensured that `rate`/`increase`/`delta` of histograms results in a gauge histogram.
- PromQL: Avoided panic while iterating over invalid histograms.
- TSDB: Rejected chunk files whose encoded chunk length overflows int.
- TSDB: Avoided panic during resolution reduction of invalid histograms.
- Remote-write Receive: Avoided duplicate labels when the experimental type-and-unit-label feature is enabled.
- OTLP Receiver: Only writes metadata to disk when the experimental metadata-wal-records feature is enabled.
🔧 Affected Symbols
TSDB/api/v1/featurespromtool tsdb dumpprometheus_notifications_latency_histogram_secondsprometheus_sd_refresh metricsprometheus_tsdb_sample_ooo_deltacodemirror-promql