Prometheus now offers a distroless Docker image variant alongside the default
busybox image. The distroless variant provides enhanced security with a minimal
base image, uses UID/GID 65532 (nonroot) instead of nobody, and removes the
VOLUME declaration. Both variants are available with -busybox and -distroless
tag suffixes (e.g., prom/prometheus:latest-busybox, prom/prometheus:latest-distroless).
The busybox image remains the default with no suffix for backwards compatibility
(e.g., prom/prometheus:latest points to the busybox variant).
For users migrating existing named volumes from the busybox image to the distroless variant, the ownership can be adjusted with:
docker run --rm -v prometheus-data:/prometheus alpine chown -R 65532:65532 /prometheus
Then, the container can be started with the old volume with:
docker run -v prometheus-data:/prometheus prom/prometheus:latest-distroless
User migrating from bind mounts might need to ajust permissions too, depending on their setup.
- [CHANGE] Alerting: Add
alertmanagerdimension to following metrics:prometheus_notifications_dropped_total,prometheus_notifications_queue_capacity,prometheus_notifications_queue_length. [#16355] - [CHANGE] UI: Hide expanded alert annotations by default, enabling more information density on the
/alertspage. [#17611] - [FEATURE] AWS SD: Add MSK Role. [#17600]
- [FEATURE] PromQL: Add
fill()/fill_left()/fill_right()binop modifiers for specifying default values for missing series. [#17644] - [FEATURE] Web: Add OpenAPI 3.2 specification for the HTTP API at
/api/v1/openapi.yaml. [#17825] - [FEATURE] Dockerfile: Add distroless image variant using UID/GID 65532 and no VOLUME declaration. Busybox image remains default. [#17876]
- [FEATURE] Web: Add on-demand wall time profiling under
<URL>/debug/pprof/fgprof. [#18027] - [ENHANCEMENT] PromQL: Add more detail to histogram quantile monotonicity info annotations. [#15578]
- [ENHANCEMENT] Alerting: Independent alertmanager sendloops. [#16355]
- [ENHANCEMENT] TSDB: Experimental support for early compaction of stale series in the memory with configurable threshold
stale_series_compaction_thresholdin the config file. [#16929] - [ENHANCEMENT] Service Discovery: Service discoveries are now removable from the Prometheus binary through the Go build tag
remove_all_sdand individual service discoveries can be re-added with the build tagsenable_<sd name>_sd. Users can build a custom Prometheus with only the necessary SDs for a smaller binary size. [#17736] - [ENHANCEMENT] Promtool: Support promql syntax features
promql-duration-exprandpromql-extended-range-selectors. [#17926] - [PERF] PromQL: Avoid unnecessary label extraction in PromQL functions. [#17676]
- [PERF] PromQL: Improve performance of regex matchers like
.*-.*-.*. [#17707] - [PERF] OTLP: Add label caching for OTLP-to-Prometheus conversion to reduce allocations and improve latency. [#17860]
- [PERF] API: Compute
/api/v1/targets/relabel_stepsin a single pass instead of re-running relabeling for each prefix. [#17969] - [PERF] tsdb: Optimize LabelValues intersection performance for matchers. [#18069]
- [BUGFIX] PromQL: Prevent query strings containing only UTF-8 continuation bytes from crashing Prometheus. [#17735]
- [BUGFIX] Web: Fix missing
X-Prometheus-Stoppingheader for/-/readyendpoint inNotReadystate. [#17795] - [BUGFIX] PromQL: Fix PromQL
info()function returning empty results when filtering by a label that exists on both the input metric andtarget_info. [#17817] - [BUGFIX] TSDB: Fix a bug during exemplar buffer grow/shrink that could cause exemplars to be incorrectly discarded. [#17863]
- [BUGFIX] UI: Fix broken graph display after page reload, due to broken Y axis min encoding/decoding. [#17869]
- [BUGFIX] TSDB: Fix memory leaks in buffer pools by clearing reference fields (Labels, Histogram pointers, metadata strings) before returning buffers to pools. [#17879]
- [BUGFIX] PromQL: info function: fix series without identifying labels not being returned. [#17898]
- [BUGFIX] OTLP: Filter
__name__from OTLP attributes to prevent duplicate labels. [#17917] - [BUGFIX] TSDB: Fix division by zero when computing stale series ratio with empty head. [#17952]
- [BUGFIX] OTLP: Fix potential silent data loss for sum metrics. [#17954]
- [BUGFIX] PromQL: Fix smoothed interpolation across counter resets. [#17988]
- [BUGFIX] PromQL: Fix panic with
@modifier on empty ranges. [#18020] - [BUGFIX] PromQL: Fix
avg_over_timefor a single native histogram. [#18058]