Prometheus 3.15.0 Adds Unix Domain Socket Scraping, Stabilizes XOR2 Chunk Encoding and Deprecates --log.level
Prometheus 3.15.0 adds Unix Domain Socket scraping and the OM2.0 scrape format, stabilizes XOR2 float chunks, and moves log-level control into reloadable configuration.
Editor's Note ·
- Correction:
- The article states that "the configuration reference reviewed for this report does not describe them" (Unix Domain Socket targets). The configuration reference does describe them: "The __unix_socket__ label, when set, causes the scrape client to connect via the specified Unix domain socket path instead of the target's __address__. Set __scheme__ to http or https to specify the protocol used over the socket (defaults to http)." The release page itself gives no configuration syntax, as the article says.
Overview
The Prometheus project published version 3.15.0 on 2026-09-24, according to the GitHub release page. The release notes list new scraping options, a stabilized storage encoding, a deprecated command-line flag and a long list of bug fixes.
What Changed
Scraping
The changelog lists two scrape-related features: “[FEATURE] Scraping: Add support for scraping targets via Unix Domain Sockets.” and “[FEATURE] scrape: Implement OM2.0 scrape format.” (GitHub release). The release also adds optional compression support: “[ENHANCEMENT] Scraping: Support zstd-compressed scrape responses, enabled via feature flag zstd-scrape.” (GitHub release). The project’s feature flags documentation says that when the flag is enabled, “Prometheus advertises support for Zstandard-compressed scrape responses in addition to gzip.”
The Targets and Service Discovery pages of the web UI now show the effective configuration for each scrape pool, per the release notes. Docker service discovery adds the labels __meta_docker_container_image and __meta_docker_container_image_id, and Kubernetes discovery populates __meta_kubernetes_service_loadbalancer_ip from status.loadBalancer.ingress, falling back to the deprecated spec.loadBalancerIP, according to the same release notes.
Storage: XOR2 and start timestamps
The release notes state: “[ENHANCEMENT] TSDB: Stabilize the XOR2 float chunk encoding. --enable-feature=xor2-encoding is deprecated; use storage.tsdb.chunk_encoding.floats: xor2 instead.” They add a caution: “Check that other software reading the TSDB directly (e.g. Thanos sidecar) supports XOR2 before enabling.” (GitHub release).
A related entry says the --enable-feature=st-storage flag “now automatically enables XOR2 float chunk encoding and ST-capable histogram chunk encoding”, so operators no longer need to pass the two separate encoding flags alongside it (GitHub release). The feature flags documentation describes start-timestamp storage as a feature that “Enables the storage of start timestamps (ST) per sample, through WAL, TSDB/Agent and Remote-Write 2.0.” It also says the feature “selects XOR2 as the default float chunk encoding because XOR chunks cannot store start timestamps” (Prometheus documentation).
Logging and memory limits
The changelog deprecates the --log.level flag: “[CHANGE] Logging: Deprecate --log.level; use runtime.log_level configuration to supply the default level.” A companion feature allows “changing the process log level through runtime.log_level on configuration reload” (GitHub release). The configuration reference describes the setting as “The minimum severity of messages emitted by the process logger. This setting can be changed by reloading the configuration.”
A new --auto-gomemlimit.refresh-interval flag will “periodically re-detect the container or system memory limit and update GOMEMLIMIT at runtime”, according to the release notes.
Remote write and Alertmanager
The sigv4 library is upgraded to v0.5.0 for remote write and Alertmanager, “adding session_name and tags fields for STS AssumeRole sessions” (GitHub release).
Fixes
Among the bug fixes, the release notes list “Avoid WAL corruption after a failed WAL write in Agent mode” and, separately, “Ignore unknown WAL record types, to help users rolling back” for the Agent. Another entry says the native histogram DetectReset function no longer misses a counter reset in one case, which the notes say “could make histogram rate()/increase() undercount” (GitHub release).
What We Don’t Know
The release page does not give the configuration syntax for Unix Domain Socket targets, and the configuration reference reviewed for this report does not describe them. The notes also do not say which third-party tools beyond the Thanos sidecar example currently read XOR2 chunks.
Upgrade Considerations
Operators who read TSDB blocks with external tools face the compatibility caveat the project itself raised for XOR2. Anyone still passing --log.level or --enable-feature=xor2-encoding is using options the release notes mark as deprecated, with runtime.log_level and storage.tsdb.chunk_encoding.floats: xor2 named as replacements.