Prometheus 3.15.0

Release · · Official release notes ↗

← 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.