Change8

Migrating to Prometheus v3.10.0

Version v3.10.0 introduces 2 breaking changes. This guide details how to update your code.

Released: 2/26/2026

2
Breaking Changes
2
Migration Steps
9
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

prometheus_notifications_dropped_totalprometheus_notifications_queue_capacityprometheus_notifications_queue_length/api/v1/openapi.yaml/debug/pprof/fgproffill()fill_left()fill_right()info()

Breaking Changes

Issue #1

Users migrating existing **named** volumes from the busybox image to the distroless variant must manually adjust volume ownership to UID/GID 65532 using `docker run --rm -v <volume_name>:/prometheus alpine chown -R 65532:65532 /prometheus` before starting the container with the distroless image.

Issue #2

The distroless Docker image variant removes the VOLUME declaration, which might affect how existing named volumes are mounted or initialized compared to the busybox variant.

Migration Steps

  1. 1
    If migrating named volumes from busybox to the distroless image, run: `docker run --rm -v <volume_name>:/prometheus alpine chown -R 65532:65532 /prometheus` to adjust ownership to UID/GID 65532.
  2. 2
    When using Docker images, append `-busybox` to the tag if you require the default busybox variant (e.g., `prom/prometheus:latest-busybox`). Use `-distroless` for the new variant.

Release Summary

This release introduces a secure distroless Docker image variant, adds new PromQL fill modifiers, and provides an OpenAPI 3.2 specification for the API. Numerous performance improvements and bug fixes address issues across PromQL, TSDB, and OTLP handling.

Need More Details?

View the full release notes and all changes for Prometheus v3.10.0.

View Full Changelog