Prometheus 3.15.0
← All Prometheus releases · Searchable index of all 692 changes
Changelog
| PR / issue | Type | Description |
|---|---|---|
| #18081, #18598 | Change | 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. Add tests to prevent regression of the fix made in . |
| #19454 | Change | PromQL: Do not register a start timestamp reset if the start timestamp hasn't changed between subsequent samples. |
| #19511 | Change | Logging: Deprecate --log.level; use runtime.log_level configuration to supply the default level. |
| #19511 | Feature | Configuration: Allow changing the process log level through runtime.log_level on configuration reload. |
| #18843 | Feature | Prometheus: Add --auto-gomemlimit.refresh-interval flag to periodically re-detect the container or system memory limit and update GOMEMLIMIT at runtime. |
| #12024, #18091 | Feature | Scraping: Add support for scraping targets via Unix Domain Sockets. . |
| #18606 | Feature | scrape: Implement OM2.0 scrape format. |
| #18001 | Enhancement | Reduce TSDB head CPU utilization when initializing. |
| #19386 | Enhancement | Docker SD: Add labels __meta_docker_container_image and __meta_docker_container_image_id. |
| #19500 | Enhancement | Mixin: Add a p95/p99 remote-write send-batch latency panel to the remote-write dashboard. |
| #19522 | Enhancement | Mixin: Support native histograms in the remote-write send-batch latency panel. |
| #19518 | Enhancement | PromQL/TSDB: The --enable-feature=st-storage flag now automatically enables XOR2 float chunk encoding and ST-capable histogram chunk encoding, so you no longer need to pass xor2-encoding and histograms-st-encoding alongside it. |
| #19569 | Enhancement | Remote write / Alertmanager: upgrade sigv4 to v0.5.0, adding session_name and tags fields for STS AssumeRole sessions. The previously undocumented service_name field is now also documented. |
| #19502 | Enhancement | Scraping: Support zstd-compressed scrape responses, enabled via feature flag zstd-scrape. |
| #19461 | Enhancement | TSDB: Stabilize the XOR2 float chunk encoding. --enable-feature=xor2-encoding is deprecated; use storage.tsdb.chunk_encoding.floats: xor2 instead. Check that other software reading the TSDB directly (e.g. Thanos sidecar) supports XOR2 before enabling. |
| #19411 | Enhancement | TSDB: add prometheus_tsdb_head_appenders_created_total metric. |
| #19410 | Enhancement | Tracing: add more spans to scrapes, API queries and rule evaluations. |
| #19384 | Enhancement | UI: Show the effective configuration for each scrape pool on the Targets and Service Discovery pages. |
| #19323 | Enhancement | scrape: Enable start time synthesis for summary _count and _sum series in scrape appender v2. |
| #19295 | Enhancement | scrape: stop all pools in parallel for faster shutdowns. |
| #19249 | Enhancement | storage/remote: Add undocumented failed_request_logging config field to debug log remote write V2 requests on send errors. |
| #18049 | Enhancement | TSDB: Add fast path for XOR chunk decompression to speed up queries. |
| #19332 | Enhancement | UI: Improve native histogram table formatting and add a background bar indicating the bucket count. |
| #19470 | Enhancement | TSDB: Add prometheus_tsdb_head_series_pending_commit_underflow_total to report pending-sample reservation underflows. |
| #19504 | Performance | AWS SD: Build RDS cluster labels once per cluster instead of once per instance. |
| #19506 | Performance | AWS SD: Describe RDS instances of different clusters concurrently, bounded by request_concurrency. |
| #19585 | Performance | AWS SD: Describe each ElastiCache resource once per refresh instead of twice. |
| #19503 | Performance | Remote read: Avoid cloning labels for sampled reads when no external labels are configured. |
| #19388 | Performance | Remote write: Reuse OTLP converter scratch state between requests. |
| #19446 | Performance | scrape: conversion from classic to native histograms should only parse start times when enabled. |
| #19387 | Bug fix | PromQL: Fix info enrichment for composite expressions with mixed @/offset references or selector-free vector branches, preventing metadata from being evaluated at an unrelated timestamp. |
| #19557 | Bug fix | PromQL: Fix info enrichment when input series use different subsets of identifying labels. |
| #19413 | Bug fix | PromQL: Preserve metric-name dropping through the info function when delayed name removal is enabled. |
| #19272 | Bug fix | TSDB: Don't silently drop samples when head garbage collection removes a series while it is being appended to. |
| #19470 | Bug fix | TSDB: Keep series with uncommitted samples during selected- and stale-series compaction, including when appenders overlap. |
| #19470 | Bug fix | TSDB: Do not retain head series after a synthetic start-timestamp zero sample is rejected. |
| #19664 | Bug fix | TSDB: Prevent query panics during series eviction after WAL replay. |
| #19460 | Bug fix | TSDB: fix potential deadlock between mmapSeriesChunks and gcSeries. |
| #19368 | Bug fix | TSDB: fix default block reload interval for custom options. |
| #19194 | Bug fix | AWS SD: Do not crash on serverless MSK clusters or MSK clusters without Open Monitoring. |
| #19435 | Bug fix | AWS SD: Do not panic when the ElastiCache API omits optional fields of a serverless cache or cache cluster. |
| #19524 | Bug fix | AWS SD: Reject non-positive request_concurrency instead of hanging service discovery indefinitely. |
| #19302 | Bug fix | Discovery/AWS: Avoid a panic when discovering standalone ECS tasks with custom task groups. |
| #19324 | Bug fix | Discovery: Do not panic in AWS Lightsail service discovery when an instance is missing optional fields such as availability zone, blueprint, bundle, name, state or support code. |
| #19131 | Bug fix | Discovery: delete the stale prometheus_sd_last_update_timestamp_seconds series for a config that is removed on reload. |
| #19661 | Bug fix | HTTP: Avoid truncating compressed responses when handlers set Content-Length. |
| #19438 | Bug fix | IONOS SD: Do not panic when the API response omits the server, NIC or volume collections, or a server's properties. |
| #19218 | Bug fix | Metadata will not affect the number of Remote Write v2 shards. |
| #19444 | Bug fix | Mixins: Fix label mismatches that prevented PrometheusHAGroupNotIngestingSamples and PrometheusHAGroupCrashlooping from firing. |
| #19367 | Bug fix | Native histograms: DetectReset no longer misses a counter reset when a populated bucket behind an empty one disappears, which could make histogram rate/increase undercount. |
| #19521 | Bug fix | Never skip histogram buckets for histogram_stddev and histogram_stdvar functions. |
| #19343 | Bug fix | OTLP: Do not abort an entire OTLP payload ingestion if one metric has no datapoints. |
| #19516 | Bug fix | PromQL: Fix FastRegexMatcher false-positive match when a capturing group is directly adjacent to a literal (e.g. .*\|(foo)\|.*). |
| #19431 | Bug fix | PromQL: Fix a panic in range selectors using the experimental anchored or smoothed modifier when the selected series has no samples inside the query window, for example a query evaluated inside a scrape gap. |
| #19187 | Bug fix | PromQL: Fix empty results when a subquery with @ is used as the matrix argument of a call that is not step-invariant (for example quantile_over_time(scalar(x), metric[...:...] @ T)). |
| #18810 | Bug fix | PromQL: Make the "found duplicate series for the match group" many-to-many matching error message deterministic by sorting the two duplicate labels. |
| #19403 | Bug fix | PromQL: Preserve parentheses around duration literals on Expr.String round-trip. |
| #19406 | Bug fix | PromQL: Reject duration-expression offsets and @ start / @ end before range selectors, matching the existing rejection of literal offsets and @ <timestamp>. |
| #19330 | Bug fix | PromQL: Report the position of the histogram argument rather than of a scalar argument in the native histogram NaN observation annotations of histogram_quantile and histogram_fraction. |
| #19266 | Bug fix | PromQL: info now applies the @ modifier/offset when evaluating the info series, so info(v @ T) enriches as of T consistently instead of depending on the query start/eval time. |
| #19433 | Bug fix | Rules: Fix a panic when a rule manager created without a logger loads a rule file containing multiple YAML documents. |
| #19328 | Bug fix | Scrape: Do not append a stale marker for a series that is still exposed when the storage returns a new series reference for it. |
| #19472 | Bug fix | Scrape: JSON log formatter correctly format scrape target info. |
| #19450 | Bug fix | TSDB: Fix in-order chunk ID overflow by wrapping head chunk IDs modulo 2^23 so they never collide with the out-of-order flag bit. |
| #19216 | Bug fix | TSDB: Fix out-of-order chunk ID overflow by wrapping firstOOOChunkID modulo 2^23 instead of growing unbounded. |
| #19326 | Bug fix | UI: Remove an extraneous X-axis tick mark in the native histogram chart when using the "linear" display mode. |
| #19333 | Bug fix | discovery/aws: Avoid a panic when an ElastiCache ARN is missing its resource ID. |
| #19584 | Bug fix | discovery/aws: Do not panic on MSK clusters whose optional API fields are absent. |
| #19512 | Bug fix | discovery/aws: Do not panic when the EC2 API omits optional instance fields. |
| #19396 | Bug fix | discovery/aws: Don't panic on ECS tasks with absent optional fields. |
| #19422 | Bug fix | discovery/aws: MSK Optional Custom Configuration Fields . |
| #19418 | Bug fix | discovery/ionos: Fix panic when the IONOS API omits optional server fields. |
| #19404 | Bug fix | discovery/kubernetes: Populate __meta_kubernetes_service_loadbalancer_ip from status.loadBalancer.ingress, falling back to deprecated spec.loadBalancerIP. |
| #19312 | Bug fix | histogram: Fix Compact moving buckets to wrong indices, and producing negative bucket counts for integer histograms, when more than one span is merged in the same pass. |
| #18051 | Bug fix | promtool: Fixed tsdb dump silently dropping native histogram samples. |
| #19304 | Bug fix | scrape: fix data race in Manager.TargetsDroppedCounts to avoid miscounting dropped targets. |
| #19452 | Bug fix | scrape: fix nil histogram when native and classic histograms are mixed in one metric family. |
| #19307 | Bug fix | TSDB: Fix WAL and GC log messages to emit human-readable duration strings instead of nanosecond integers. |
| #19700 | Bug fix | TSDB: Avoid WAL corruption after a failed WAL write in Agent mode. |
| #19814 | Bug fix | Agent: Ignore unknown WAL record types, to help users rolling back. |
Reproduced from the official Prometheus 3.15.0 release notes. Last checked 8 Oct 2026, 13:19 UTC.