Prometheus 3.12.0
← All Prometheus releases · Searchable index of all 403 changes
Changelog
| PR / issue | Type | Description |
|---|---|---|
| — | Change | Security: Two security vulnerabilities have been addressed: a denial of service in remote-write (snappy decompression limit) and a secret exposure leak in STACKIT service discovery. |
| — | Change | PromQL & Metadata: Several features and bug fixes related to the experimental "start timestamps" support, including updates to rate, irate, increase, and resets. New experimental functions start, end, range, and step are introduced. |
| — | Change | TSDB Performance: Optimizations in head chunk lookup (constant time) and mmap operations to reduce CPU usage. |
| — | Change | Service Discovery: Added support for DigitalOcean Managed Databases and Outscale VM, along with improvements to AWS SD (IPv6 support for EC2, external ID support). |
| — | Change | UI: Added a web interface for deleting time series and cleaning tombstones. |
| #18642 | Security | Remote: Reject snappy-compressed received requests via Remote Write whose declared decoded length exceeds the 32MB. Thanks to for reporting it. |
| #18649 | Security | STACKIT SD: Fix secrets being exposed in plaintext via /-/config endpoint. Thanks to and for reporting. GHSA-39j6-789q-qxvh |
| #18221 | Change | TSDB/Agent: Adds Start Timestamp field to all WAL Histogram samples in memory; used st-storage flag is enabled. |
| #18411 | Feature | API: Add /api/v1/status/self_metrics endpoint returning the current state of the Prometheus server's own metrics about itself as JSON. |
| #18287 | Feature | Discovery: Add DigitalOcean Managed Databases service discovery |
| #18321 | Feature | Prometheus: Add support for the aix/ppc64 compilation target |
| #18139 | Feature | Discovery: Add Outscale VM service discovery (outscale_sd_configs) for discovering scrape targets from the Outscale Cloud API. |
| #18498 | Feature | PromQL: Emit a warning when sort, sort_by_label or sort_by_label_desc is used within range (matrix) queries, as these functions do not have effect in that context. |
| #17877 | Feature | PromQL: Add start, end, range, and step experimental functions |
| #18627 | Feature | PromQL: Update resets function to consider start timestamp resets. Hidden behind use-start-timestamps feature flag. |
| #18620 | Feature | Prometheus: Promote auto-reload-config as stable |
| #17948 | Feature | TSDB/Agent: Add CheckpointFromInMemorySeries option to agent.DB that enables checkpoint based on in-memory series. |
| #18390 | Feature | UI: Add a web interface for deleting time series and cleaning tombstones, accessible from the Status menu. |
| #18344 | Feature | PromQL: Use start timestamps for rate, irate, and increase calculations, behind a feature flag use-start-timestamps. Doesn't work together with extended range selectors anchored and smoothed. |
| #18279 | Feature | Scrape: Added a feature flag st-synthesis which synthesizes unknown STs for scraped cumulative metrics. Useful when Remote Writing 2.0 with delta or Otel-based backends. |
| #18360 | Feature | promqltest: support annotation in load blocks to specify per-sample start timestamps. |
| #18651 | Enhancement | API: reject concurrent fgprof profiles. |
| #18579 | Enhancement | AWS SD: Add optional external_id field to ECS/MSK/RDS/Elasticache. |
| #17171 | Enhancement | AWS SD: Add optional external_id field. |
| #18187 | Enhancement | Discovery: Propagate SD target updates faster by introducing dynamic backoff interval instead of static 5s interval for throttling. |
| #18418 | Enhancement | Promtool: Add --header flag to query instant command, matching existing query range behaviour. |
| #16088 | Enhancement | AWS SD: Allows EC2 service discovery to discover IPv6 addresses to communicate with target endpoints. The private IPv4 address remains the default when both IPv4 and IPv6 addresses are present. |
| #18302 | Performance | TSDB: Make head chunk lookup in range queries constant time instead of quadratic time |
| #18541 | Performance | TSDB: Skip entire stripes in mmapHeadChunks when no series need mmapping, reducing CPU utilization significantly at production-relevant scales. |
| #18272 | Performance | TSDB: Skip clean series during periodic head chunk mmap using cached head chunk count |
| #18568 | Performance | PromQL: Address FloatHistogram.KahanAdd performance regression on Go 1.26. |
| #17932 | Bug fix | PromQL: Fix info function incorrectly handling negated __name__ matchers |
| #18624 | Bug fix | API: Return duration expressions in /parse_ast. |
| #18305 | Bug fix | API: correctly document formats accepted for duration query request parameters (step, timeout and lookback delta) in OpenAPI spec |
| #18567 | Bug fix | Scrape: AppenderV2 now tracks staleness even when OOO/duplicate series errors happen similar to AppenderV1 |
| #18209 | Bug fix | Config: Validate remote_write queue_config fields at load time to prevent runtime panic and silent misconfiguration. |
| #18479, #18499 | Bug fix | Discovery/Consul: Add health_filter for Health API filtering, fixing breakage when using Catalog-only fields like ServiceTags in filter. |
| #18408 | Bug fix | OTLP: limit decompressed body size for gzip-encoded OTLP write requests. |
| #18523 | Bug fix | PromQL: Fix smoothed rate/increase returning zero instead of no result when all data falls strictly after the query range. |
| #18409 | Bug fix | PromQL: Fix metric name not being dropped when last_over_time or first_over_time is applied to subqueries containing name-dropping functions like abs. |
| #18660 | Bug fix | PromQL: Fix missing warning when mixing exponential and custom-bucket histograms in stats queries. |
| #18623 | Bug fix | PromQL: Fix parsing of range keyword in duration expressions such as foo[5m+range]. |
| #18531 | Bug fix | PromQL: Fix smoothed vector selector returning no results in binary operations when the @ modifier is used. |
| #18639 | Bug fix | PromQL: Reject NaN, infinite, and out-of-range duration expressions instead of silently producing an out-of-range time.Duration. |
| #18414 | Bug fix | Scrape: Fix panic when scraping malformed native histograms. |
| #18382 | Bug fix | Scrape: fix panic when scraping a target exposing a summary with no quantiles via the protobuf format. |
| #18421 | Bug fix | Scrape: fix scrape failure log file occasionally not applied after a configuration reload. |
| #18628 | Bug fix | TSDB: Allow retention percentage with new data path. |
| #18374 | Bug fix | TSDB: Preserve decimal precision in percentage-based retention |
| #18401 | Bug fix | TSDB: fix prometheus_tsdb_head_chunks going negative after WAL replay |
| #18692 | Bug fix | TSDB: panic with native histograms during query of overlapping chunks. |
| #18469 | Bug fix | Tracing: fix startup failure for insecure OTLP HTTP tracing |
| #18658 | Bug fix | UI: Escape label values offered by PromQL autocomplete. |
| #18682 | Bug fix | UI: Improve Y-axis tick label precision for graph values over small ranges. |
| #17614 | Bug fix | prometheus_sd_refresh* and prometheus_sd_discovered_targets metrics for specific scrape jobs are deleted when the scrape job is removed. |
| #18641 | Bug fix | Remote: fixed validation for received RW2 requests when parsing metadata unit symbols. This fixes a case when request would cause (recovered) handler panic. |
| #18292 | Bug fix | TSDB/Agent: fix race in agent appender where concurrent appends for the same label set could produce duplicate in-memory series and duplicate WAL records. |
| #18487 | Bug fix | Config: Update --enable-feature flag description and sort feature names. |
Reproduced from the official Prometheus 3.12.0 release notes. Last checked 7 Jul 2026, 21:23 UTC.