[SECURITY] UI: Bump sanitize-html to fix a cross-site scripting vulnerability (CVE-2026-44990). #18697
[CHANGE] UI: Third-party npm dependency licenses are now embedded in the Prometheus binary and served at /assets/third-party-licenses.txt, replacing the npm_licenses.tar.bz2 archive previously shipped in release tarballs and container images. #18997
[CHANGE] API: Use SHA-256 instead of SHA-1 to generate rule group pagination tokens. #18927
[CHANGE] HTTP clients: Credentials (Authorization header, basic auth, bearer token, OAuth2, configured headers) are no longer forwarded when following a redirect to a different host; affects scraping, remote read/write, alerting, and service discovery. Via prometheus/common v0.69.0 (CVE-2025-4673 CVE-2023-45289). #18949
[CHANGE] promtool: Relative file paths in the file passed to --http.config.file are now resolved relative to that config file's directory instead of its parent directory. Via prometheus/common v0.69.0. #18949
[CHANGE] PromQL: Rename the min() and max() duration-expression functions (experimental feature flag experimental-duration-expr) to min_of() and max_of() to avoid confusion with the min and max aggregate operators. #18687
[FEATURE] API: Add experimental search endpoints to search metric names, label names, and label values. #18573
[FEATURE] Discovery/AWS: Add ability to filter RDS instances. #18859
[FEATURE] PromQL: Add min_of(a, b) and max_of(a, b) scalar experimental functions, returning the smaller or larger of two scalar values. #18687
[FEATURE] PromQL: Add support for smoothed/anchored rate with native histograms. #18564
[FEATURE] PromQL: Expose per-query samplesRead (and samplesReadPerStep with stats=all and the promql-per-step-stats feature flag) in the query stats response, and add the prometheus_engine_query_samples_read_total engine counter. samplesRead reflects storage I/O distinct from totalQueryableSamples, which counts samples loaded into the evaluator (and so over-counts when a sample is reused across multiple range-vector windows). #18081
[FEATURE] Scrape: Add __convert_classic_histograms_to_nhcb__ internal label to allow per-target override of convert_classic_histograms_to_nhcb scrape configuration via relabeling. #18840
[FEATURE] TSDB: Add storage.tsdb.chunk_encoding.floats configuration field to select float chunk encoding (xor or xor2) at runtime, independently of the --enable-feature=xor2-encoding flag. #18769
[FEATURE] remote_write: Add Certificate support for ingesting data into an Azure Monitor Workspace. #18217
[FEATURE] Scrape: Add __always_scrape_classic_histograms__ and __scrape_native_histograms__ internal labels to allow per-target override of the always_scrape_classic_histograms and scrape_native_histograms scrape configuration via relabeling. #18929
[ENHANCEMENT] Release: Container images are now also published to the GitHub Container Registry (ghcr.io). #18791
[ENHANCEMENT] PromQL: Prettify fill_left(x) fill_right(x) as fill(x) when both fill values are equal. #18851
[ENHANCEMENT] UI: Improve autocompletion after closing a function bracket. #18894
[PERF] Labels: Add case-insensitive prefix matching to speed up evaluation of long case-insensitive regular expressions (up to ~2x faster). #18540
[PERF] TSDB: Reduce per-sample overhead in chunk population, speeding up affected queries by ~12-15% in benchmarks. #18699
[PERF] TSDB: Eliminate unnecessary heap allocations in the V2 histogram WAL decoder, reducing allocations by up to 50% and memory by up to 10% for deployments using native histograms with created-timestamp storage enabled (--enable-feature=created-timestamp-zero-ingestion). #18813
[BUGFIX] Discovery/AWS: Fix failure when processing an AWS RDS cluster without instances. #18845
[BUGFIX] Fix race condition in initTime that could cause ErrOutOfBounds. #18629
[BUGFIX] PromQL: A range query whose end was not aligned to step caused subqueries inside it to evaluate past the parent's last actual step, inflating peakSamples in the query stats and against the query.max-samples limit, and wasting storage I/O reading samples that were never used in the result. #18081
[BUGFIX] PromQL: A range query containing an at-modifier-unsafe function over a range-vector with an @ modifier (e.g. predict_linear(metric[60s] @​ T, X)) silently under-counted totalQueryableSamples for steps after step 0. #18081
[BUGFIX] PromQL: Fix fill_left/fill_right producing missing samples in range queries when using group_left/group_right. #18850
[BUGFIX] PromQL: Fix for resets() and changes() in anchored range extenders with histograms. #18906
[BUGFIX] PromQL: Fix panic on 1[5m] smoothed and similar expressions when extended range selectors are enabled. #18764
[BUGFIX] PromQL: Fix panic when a smoothed instant vector selector produces no samples for a series. #18943
[BUGFIX] PromQL: Fix panic when using a parenthesised plain number as an offset (e.g. foo offset -(5)). #18768
[BUGFIX] promtool: Fix panic when parsing exposition text containing empty braces {}. Via prometheus/common v0.69.0. #18949
[BUGFIX] Promtool: Fix check healthy and check ready when --url ends with a trailing slash. #18854
[BUGFIX] Rules: Close PromQL query after each rule evaluation to ensure resources are released. #18733
[BUGFIX] Scaleway SD: Resolve VPC/IPAM-only instances that have no legacy private_ip or public_ip field, but do have private NICs attached. #18772
[BUGFIX] TSDB: Do not leak head series when an integer histogram append is rejected (e.g. out-of-order). #18838
[BUGFIX] UI: Escape label values offered by PromQL autocomplete. #18658
[BUGFIX] TSDB: Fix chunk snapshot encoding for EncXOR2 chunks, preventing corruption on TSDB restart when EncXOR2-encoded series were present. #18739
[BUGFIX] TSDB: Store a millisecond timestamp (not a WAL segment number) in walExpiries when a series is evicted via CompactStaleHead/CompactSelectedSeries, so the series's label record is correctly retained in the next WAL checkpoint and replays cleanly. #18847
[BUGFIX] TSDB: Prevent loss of samples at the chunk-range boundary when CompactSelectedSeries (and CompactStaleHead) evict the series — the per-slice compaction loop now runs one more iteration so the boundary timestamp is captured in a block before the in-memory copy is removed. #18849
Configuration
📅Schedule: (UTC)
Branch creation
At any time (no schedule defined)
Automerge
At any time (no schedule defined)
🚦Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [prom/prometheus](https://github.com/prometheus/prometheus) | minor | `v3.12.0` → `v3.13.0` |
---
### Release Notes
<details>
<summary>prometheus/prometheus (prom/prometheus)</summary>
### [`v3.13.0`](https://github.com/prometheus/prometheus/releases/tag/v3.13.0): 3.13.0 / 2026-07-01
[Compare Source](https://github.com/prometheus/prometheus/compare/v3.12.0...v3.13.0)
This is a Long Term Support [LTS](https://prometheus.io/docs/introduction/release-cycle/) release.
- \[SECURITY] UI: Bump `sanitize-html` to fix a cross-site scripting vulnerability (CVE-2026-44990). [#​18697](https://github.com/prometheus/prometheus/issues/18697)
- \[CHANGE] UI: Third-party npm dependency licenses are now embedded in the Prometheus binary and served at `/assets/third-party-licenses.txt`, replacing the `npm_licenses.tar.bz2` archive previously shipped in release tarballs and container images. [#​18997](https://github.com/prometheus/prometheus/issues/18997)
- \[CHANGE] API: Use SHA-256 instead of SHA-1 to generate rule group pagination tokens. [#​18927](https://github.com/prometheus/prometheus/issues/18927)
- \[CHANGE] HTTP clients: Credentials (Authorization header, basic auth, bearer token, OAuth2, configured headers) are no longer forwarded when following a redirect to a different host; affects scraping, remote read/write, alerting, and service discovery. Via prometheus/common v0.69.0 (CVE-2025-4673 CVE-2023-45289). [#​18949](https://github.com/prometheus/prometheus/issues/18949)
- \[CHANGE] promtool: Relative file paths in the file passed to `--http.config.file` are now resolved relative to that config file's directory instead of its parent directory. Via prometheus/common v0.69.0. [#​18949](https://github.com/prometheus/prometheus/issues/18949)
- \[CHANGE] PromQL: Rename the `min()` and `max()` duration-expression functions (experimental feature flag `experimental-duration-expr`) to `min_of()` and `max_of()` to avoid confusion with the `min` and `max` aggregate operators. [#​18687](https://github.com/prometheus/prometheus/issues/18687)
- \[FEATURE] API: Add experimental search endpoints to search metric names, label names, and label values. [#​18573](https://github.com/prometheus/prometheus/issues/18573)
- \[FEATURE] Discovery/AWS: Add ability to filter RDS instances. [#​18859](https://github.com/prometheus/prometheus/issues/18859)
- \[FEATURE] PromQL: Add `min_of(a, b)` and `max_of(a, b)` scalar experimental functions, returning the smaller or larger of two scalar values. [#​18687](https://github.com/prometheus/prometheus/issues/18687)
- \[FEATURE] PromQL: Add support for smoothed/anchored rate with native histograms. [#​18564](https://github.com/prometheus/prometheus/issues/18564)
- \[FEATURE] PromQL: Expose per-query `samplesRead` (and `samplesReadPerStep` with `stats=all` and the `promql-per-step-stats` feature flag) in the query stats response, and add the `prometheus_engine_query_samples_read_total` engine counter. `samplesRead` reflects storage I/O distinct from `totalQueryableSamples`, which counts samples loaded into the evaluator (and so over-counts when a sample is reused across multiple range-vector windows). [#​18081](https://github.com/prometheus/prometheus/issues/18081)
- \[FEATURE] Scrape: Add `__convert_classic_histograms_to_nhcb__` internal label to allow per-target override of `convert_classic_histograms_to_nhcb` scrape configuration via relabeling. [#​18840](https://github.com/prometheus/prometheus/issues/18840)
- \[FEATURE] TSDB: Add `storage.tsdb.chunk_encoding.floats` configuration field to select float chunk encoding (`xor` or `xor2`) at runtime, independently of the `--enable-feature=xor2-encoding` flag. [#​18769](https://github.com/prometheus/prometheus/issues/18769)
- \[FEATURE] remote\_write: Add Certificate support for ingesting data into an Azure Monitor Workspace. [#​18217](https://github.com/prometheus/prometheus/issues/18217)
- \[FEATURE] Scrape: Add `__always_scrape_classic_histograms__` and `__scrape_native_histograms__` internal labels to allow per-target override of the `always_scrape_classic_histograms` and `scrape_native_histograms` scrape configuration via relabeling. [#​18929](https://github.com/prometheus/prometheus/issues/18929)
- \[ENHANCEMENT] Release: Container images are now also published to the GitHub Container Registry (ghcr.io). [#​18791](https://github.com/prometheus/prometheus/issues/18791)
- \[ENHANCEMENT] PromQL: Prettify `fill_left(x) fill_right(x)` as `fill(x)` when both fill values are equal. [#​18851](https://github.com/prometheus/prometheus/issues/18851)
- \[ENHANCEMENT] UI: Improve autocompletion after closing a function bracket. [#​18894](https://github.com/prometheus/prometheus/issues/18894)
- \[PERF] Labels: Add case-insensitive prefix matching to speed up evaluation of long case-insensitive regular expressions (up to \~2x faster). [#​18540](https://github.com/prometheus/prometheus/issues/18540)
- \[PERF] TSDB: Reduce per-sample overhead in chunk population, speeding up affected queries by \~12-15% in benchmarks. [#​18699](https://github.com/prometheus/prometheus/issues/18699)
- \[PERF] TSDB: Eliminate unnecessary heap allocations in the V2 histogram WAL decoder, reducing allocations by up to 50% and memory by up to 10% for deployments using native histograms with created-timestamp storage enabled (`--enable-feature=created-timestamp-zero-ingestion`). [#​18813](https://github.com/prometheus/prometheus/issues/18813)
- \[BUGFIX] Discovery/AWS: Fix failure when processing an AWS RDS cluster without instances. [#​18845](https://github.com/prometheus/prometheus/issues/18845)
- \[BUGFIX] Fix race condition in initTime that could cause ErrOutOfBounds. [#​18629](https://github.com/prometheus/prometheus/issues/18629)
- \[BUGFIX] PromQL: A range query whose `end` was not aligned to `step` caused subqueries inside it to evaluate past the parent's last actual step, inflating `peakSamples` in the query stats and against the `query.max-samples` limit, and wasting storage I/O reading samples that were never used in the result. [#​18081](https://github.com/prometheus/prometheus/issues/18081)
- \[BUGFIX] PromQL: A range query containing an at-modifier-unsafe function over a range-vector with an `@` modifier (e.g. `predict_linear(metric[60s] @​ T, X)`) silently under-counted `totalQueryableSamples` for steps after step 0. [#​18081](https://github.com/prometheus/prometheus/issues/18081)
- \[BUGFIX] PromQL: Fix `fill_left`/`fill_right` producing missing samples in range queries when using `group_left`/`group_right`. [#​18850](https://github.com/prometheus/prometheus/issues/18850)
- \[BUGFIX] PromQL: Fix for resets() and changes() in anchored range extenders with histograms. [#​18906](https://github.com/prometheus/prometheus/issues/18906)
- \[BUGFIX] PromQL: Fix panic on `1[5m] smoothed` and similar expressions when extended range selectors are enabled. [#​18764](https://github.com/prometheus/prometheus/issues/18764)
- \[BUGFIX] PromQL: Fix panic when a `smoothed` instant vector selector produces no samples for a series. [#​18943](https://github.com/prometheus/prometheus/issues/18943)
- \[BUGFIX] PromQL: Fix panic when using a parenthesised plain number as an offset (e.g. `foo offset -(5)`). [#​18768](https://github.com/prometheus/prometheus/issues/18768)
- \[BUGFIX] promtool: Fix panic when parsing exposition text containing empty braces `{}`. Via prometheus/common v0.69.0. [#​18949](https://github.com/prometheus/prometheus/issues/18949)
- \[BUGFIX] Promtool: Fix `check healthy` and `check ready` when `--url` ends with a trailing slash. [#​18854](https://github.com/prometheus/prometheus/issues/18854)
- \[BUGFIX] Rules: Close PromQL query after each rule evaluation to ensure resources are released. [#​18733](https://github.com/prometheus/prometheus/issues/18733)
- \[BUGFIX] Scaleway SD: Resolve VPC/IPAM-only instances that have no legacy `private_ip` or `public_ip` field, but do have private NICs attached. [#​18772](https://github.com/prometheus/prometheus/issues/18772)
- \[BUGFIX] TSDB: Do not leak head series when an integer histogram append is rejected (e.g. out-of-order). [#​18838](https://github.com/prometheus/prometheus/issues/18838)
- \[BUGFIX] UI: Escape label values offered by PromQL autocomplete. [#​18658](https://github.com/prometheus/prometheus/issues/18658)
- \[BUGFIX] TSDB: Fix chunk snapshot encoding for EncXOR2 chunks, preventing corruption on TSDB restart when EncXOR2-encoded series were present. [#​18739](https://github.com/prometheus/prometheus/issues/18739)
- \[BUGFIX] TSDB: Store a millisecond timestamp (not a WAL segment number) in walExpiries when a series is evicted via CompactStaleHead/CompactSelectedSeries, so the series's label record is correctly retained in the next WAL checkpoint and replays cleanly. [#​18847](https://github.com/prometheus/prometheus/issues/18847)
- \[BUGFIX] TSDB: Prevent loss of samples at the chunk-range boundary when CompactSelectedSeries (and CompactStaleHead) evict the series — the per-slice compaction loop now runs one more iteration so the boundary timestamp is captured in a block before the in-memory copy is removed. [#​18849](https://github.com/prometheus/prometheus/issues/18849)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDkuNSIsInVwZGF0ZWRJblZlciI6IjQzLjI0OS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
v3.12.0→v3.13.0Release Notes
prometheus/prometheus (prom/prometheus)
v3.13.0: 3.13.0 / 2026-07-01Compare Source
This is a Long Term Support LTS release.
sanitize-htmlto fix a cross-site scripting vulnerability (CVE-2026-44990). #18697/assets/third-party-licenses.txt, replacing thenpm_licenses.tar.bz2archive previously shipped in release tarballs and container images. #18997--http.config.fileare now resolved relative to that config file's directory instead of its parent directory. Via prometheus/common v0.69.0. #18949min()andmax()duration-expression functions (experimental feature flagexperimental-duration-expr) tomin_of()andmax_of()to avoid confusion with theminandmaxaggregate operators. #18687min_of(a, b)andmax_of(a, b)scalar experimental functions, returning the smaller or larger of two scalar values. #18687samplesRead(andsamplesReadPerStepwithstats=alland thepromql-per-step-statsfeature flag) in the query stats response, and add theprometheus_engine_query_samples_read_totalengine counter.samplesReadreflects storage I/O distinct fromtotalQueryableSamples, which counts samples loaded into the evaluator (and so over-counts when a sample is reused across multiple range-vector windows). #18081__convert_classic_histograms_to_nhcb__internal label to allow per-target override ofconvert_classic_histograms_to_nhcbscrape configuration via relabeling. #18840storage.tsdb.chunk_encoding.floatsconfiguration field to select float chunk encoding (xororxor2) at runtime, independently of the--enable-feature=xor2-encodingflag. #18769__always_scrape_classic_histograms__and__scrape_native_histograms__internal labels to allow per-target override of thealways_scrape_classic_histogramsandscrape_native_histogramsscrape configuration via relabeling. #18929fill_left(x) fill_right(x)asfill(x)when both fill values are equal. #18851--enable-feature=created-timestamp-zero-ingestion). #18813endwas not aligned tostepcaused subqueries inside it to evaluate past the parent's last actual step, inflatingpeakSamplesin the query stats and against thequery.max-sampleslimit, and wasting storage I/O reading samples that were never used in the result. #18081@modifier (e.g.predict_linear(metric[60s] @​ T, X)) silently under-countedtotalQueryableSamplesfor steps after step 0. #18081fill_left/fill_rightproducing missing samples in range queries when usinggroup_left/group_right. #188501[5m] smoothedand similar expressions when extended range selectors are enabled. #18764smoothedinstant vector selector produces no samples for a series. #18943foo offset -(5)). #18768{}. Via prometheus/common v0.69.0. #18949check healthyandcheck readywhen--urlends with a trailing slash. #18854private_iporpublic_ipfield, but do have private NICs attached. #18772Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.