Prometheus 3.13.0
← All Prometheus releases · Searchable index of all 403 changes
Changelog
| PR / issue | Type | Description |
|---|---|---|
| #18697 | Security | UI: Bump sanitize-html to fix a cross-site scripting vulnerability (CVE-2026-44990). |
| #18997 | 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. |
| #18927 | Change | API: Use SHA-256 instead of SHA-1 to generate rule group pagination tokens. |
| #18949 | 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. |
| #18687 | 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. |
| #18573 | Feature | API: Add experimental search endpoints to search metric names, label names, and label values. |
| #18859 | Feature | Discovery/AWS: Add ability to filter RDS instances. |
| #18687 | Feature | PromQL: Add min_of(a, b) and max_of(a, b) scalar experimental functions, returning the smaller or larger of two scalar values. |
| #18564 | Feature | PromQL: Add support for smoothed/anchored rate with native histograms. |
| #18081 | 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). |
| #18840 | 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. |
| #18769 | 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. |
| #18217 | Feature | remote_write: Add Certificate support for ingesting data into an Azure Monitor Workspace. |
| #18929 | 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. |
| #18791 | Enhancement | Release: Container images are now also published to the GitHub Container Registry (ghcr.io). |
| #18851 | Enhancement | PromQL: Prettify fill_left(x) fill_right(x) as fill(x) when both fill values are equal. |
| #18894 | Enhancement | UI: Improve autocompletion after closing a function bracket. |
| #18540 | Performance | Labels: Add case-insensitive prefix matching to speed up evaluation of long case-insensitive regular expressions (up to ~2x faster). |
| #18699 | Performance | TSDB: Reduce per-sample overhead in chunk population, speeding up affected queries by ~12-15% in benchmarks. |
| #18813 | Performance | 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). |
| #18845 | Bug fix | Discovery/AWS: Fix failure when processing an AWS RDS cluster without instances. |
| #18629 | Bug fix | Fix race condition in initTime that could cause ErrOutOfBounds. |
| #18081 | Bug fix | 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 | Bug fix | 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. |
| #18850 | Bug fix | PromQL: Fix fill_left/fill_right producing missing samples in range queries when using group_left/group_right. |
| #18906 | Bug fix | PromQL: Fix for resets and changes in anchored range extenders with histograms. |
| #18764 | Bug fix | PromQL: Fix panic on 1[5m] smoothed and similar expressions when extended range selectors are enabled. |
| #18943 | Bug fix | PromQL: Fix panic when a smoothed instant vector selector produces no samples for a series. |
| #18768 | Bug fix | PromQL: Fix panic when using a parenthesised plain number as an offset (e.g. foo offset -(5)). |
| #18949 | Bug fix | promtool: Fix panic when parsing exposition text containing empty braces {}. Via prometheus/common v0.69.0. |
| #18854 | Bug fix | Promtool: Fix check healthy and check ready when --url ends with a trailing slash. |
| #18733 | Bug fix | Rules: Close PromQL query after each rule evaluation to ensure resources are released. |
| #18772 | Bug fix | Scaleway SD: Resolve VPC/IPAM-only instances that have no legacy private_ip or public_ip field, but do have private NICs attached. |
| #18838 | Bug fix | TSDB: Do not leak head series when an integer histogram append is rejected (e.g. out-of-order). |
| #18658 | Bug fix | UI: Escape label values offered by PromQL autocomplete. |
| #18739 | Bug fix | TSDB: Fix chunk snapshot encoding for EncXOR2 chunks, preventing corruption on TSDB restart when EncXOR2-encoded series were present. |
| #18847 | Bug fix | 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. |
| #18849 | Bug fix | 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. |
Reproduced from the official Prometheus 3.13.0 release notes. Last checked 7 Jul 2026, 21:23 UTC.