Migrating to Prometheus v3.10.0-rc.1
Version v3.10.0-rc.1 introduces 2 breaking changes. This guide details how to update your code.
Released: 2/20/2026
⚠️ 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()avg_over_timeBreaking Changes
●Issue #1
Users migrating existing **named** volumes from the busybox image to the distroless variant must manually adjust ownership of the volume data 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, meaning named volumes or bind mounts must be explicitly configured when running the container.
Migration Steps
- 1If using named volumes with the busybox image, run `docker run --rm -v <volume_name>:/prometheus alpine chown -R 65532:65532 /prometheus` to adjust ownership before using the volume with the distroless image.
- 2When using the new distroless image, ensure any required volumes or bind mounts are explicitly specified in the `docker run` command, as the `VOLUME` declaration has been removed.
Release Summary
This release introduces a secure distroless Docker image variant and significant PromQL enhancements, including new `fill()` modifiers and performance improvements across the query engine and TSDB. Several bugs related to OTLP handling, PromQL functions, and memory leaks have also been resolved.
Need More Details?
View the full release notes and all changes for Prometheus v3.10.0-rc.1.
View Full Changelog