3.15.0-rc.0 / 2026-09-09
- [CHANGE] PromQL: A range query whose
endwas not aligned tostepcaused subqueries inside it to evaluate past the parent's last actual step, inflatingpeakSamplesin the query stats and against thequery.max-sampleslimit, and wasting storage I/O reading samples that were never used in the result. Add tests to prevent regression of the fix made in #18081. #18598 - [CHANGE] PromQL: Do not register a start timestamp reset if the start timestamp hasn't changed between subsequent samples. #19454
- [CHANGE] Logging: Deprecate
--log.level; useruntime.log_levelconfiguration to supply the default level. #19511 - [FEATURE] Configuration: Allow changing the process log level through
runtime.log_levelon configuration reload. #19511 - [FEATURE] Prometheus: Add
--auto-gomemlimit.refresh-intervalflag to periodically re-detect the container or system memory limit and updateGOMEMLIMITat runtime. #18843 - [FEATURE] Scraping: Add support for scraping targets via Unix Domain Sockets. #12024. #18091
- [FEATURE] scrape: Implement OM2.0 scrape format. #18606
- [ENHANCEMENT] Reduce TSDB head CPU utilization when initializing. #18001
- [ENHANCEMENT] Docker SD: Add labels
__meta_docker_container_imageand__meta_docker_container_image_id. #19386 - [ENHANCEMENT] Mixin: Add a p95/p99 remote-write send-batch latency panel to the remote-write dashboard. #19500
- [ENHANCEMENT] Mixin: Support native histograms in the remote-write send-batch latency panel. #19522
- [ENHANCEMENT] PromQL/TSDB: The
--enable-feature=st-storageflag now automatically enables XOR2 float chunk encoding and ST-capable histogram chunk encoding, so you no longer need to passxor2-encodingandhistograms-st-encodingalongside it. #19518 - [ENHANCEMENT] Remote write / Alertmanager: upgrade sigv4 to v0.5.0, adding
session_nameandtagsfields for STS AssumeRole sessions. The previously undocumentedservice_namefield is now also documented. #19569 - [ENHANCEMENT] Scraping: Support zstd-compressed scrape responses, enabled via feature flag
zstd-scrape. #19502 - [ENHANCEMENT] TSDB: Stabilize the XOR2 float chunk encoding.
--enable-feature=xor2-encodingis deprecated; usestorage.tsdb.chunk_encoding.floats: xor2instead. Check that other software reading the TSDB directly (e.g. Thanos sidecar) supports XOR2 before enabling. #19461 - [ENHANCEMENT] TSDB: add
prometheus_tsdb_head_appenders_created_totalmetric. #19411 - [ENHANCEMENT] Tracing: add more spans to scrapes, API queries and rule evaluations. #19410
- [ENHANCEMENT] UI: Show the effective configuration for each scrape pool on the Targets and Service Discovery pages. #19384
- [ENHANCEMENT] scrape: Enable start time synthesis for summary
_countand_sumseries in scrape appender v2. #19323 - [ENHANCEMENT] scrape: stop all pools in parallel for faster shutdowns. #19295
- [ENHANCEMENT] storage/remote: Add undocumented failed_request_logging config field to debug log remote write V2 requests on send errors. #19249
- [ENHANCEMENT] TSDB: Add fast path for XOR chunk decompression to speed up queries. #18049
- [ENHANCEMENT] UI: Improve native histogram table formatting and add a background bar indicating the bucket count. #19332
- [ENHANCEMENT] TSDB: Add
prometheus_tsdb_head_series_pending_commit_underflow_totalto report pending-sample reservation underflows. #19470 - [PERF] AWS SD: Build RDS cluster labels once per cluster instead of once per instance. #19504
- [PERF] AWS SD: Describe RDS instances of different clusters concurrently, bounded by
request_concurrency. #19506 - [PERF] AWS SD: Describe each ElastiCache resource once per refresh instead of twice. #19585
- [PERF] Remote read: Avoid cloning labels for sampled reads when no external labels are configured. #19503
- [PERF] Remote write: Reuse OTLP converter scratch state between requests. #19388
- [PERF] scrape: conversion from classic to native histograms should only parse start times when enabled. #19446
- [BUGFIX] 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. #19387 - [BUGFIX] PromQL: Fix info() enrichment when input series use different subsets of identifying labels. #19557
- [BUGFIX] PromQL: Preserve metric-name dropping through the info function when delayed name removal is enabled. #19413
- [BUGFIX] TSDB: Don't silently drop samples when head garbage collection removes a series while it is being appended to. #19272
- [BUGFIX] TSDB: Keep series with uncommitted samples during selected- and stale-series compaction, including when appenders overlap. #19470
- [BUGFIX] TSDB: Do not retain head series after a synthetic start-timestamp zero sample is rejected. #19470
- [BUGFIX] TSDB: Prevent query panics during series eviction after WAL replay. #19664
- [BUGFIX] TSDB: fix potential deadlock between mmapSeriesChunks and gcSeries. #19460
- [BUGFIX] TSDB: fix default block reload interval for custom options. #19368
- [BUGFIX] AWS SD: Do not crash on serverless MSK clusters or MSK clusters without Open Monitoring. #19194
- [BUGFIX] AWS SD: Do not panic when the ElastiCache API omits optional fields of a serverless cache or cache cluster. #19435
- [BUGFIX] AWS SD: Reject non-positive
request_concurrencyinstead of hanging service discovery indefinitely. #19524 - [BUGFIX] Discovery/AWS: Avoid a panic when discovering standalone ECS tasks with custom task groups. #19302
- [BUGFIX] 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. #19324
- [BUGFIX] Discovery: delete the stale
prometheus_sd_last_update_timestamp_secondsseries for a config that is removed on reload. #19131 - [BUGFIX] HTTP: Avoid truncating compressed responses when handlers set Content-Length. #19661
- [BUGFIX] IONOS SD: Do not panic when the API response omits the server, NIC or volume collections, or a server's properties. #19438
- [BUGFIX] Metadata will not affect the number of Remote Write v2 shards. #19218
- [BUGFIX] Mixins: Fix label mismatches that prevented PrometheusHAGroupNotIngestingSamples and PrometheusHAGroupCrashlooping from firing. #19444
- [BUGFIX] Native histograms:
DetectResetno longer misses a counter reset when a populated bucket behind an empty one disappears, which could make histogramrate()/increase()undercount. #19367 - [BUGFIX] Never skip histogram buckets for histogram_stddev and histogram_stdvar functions. #19521
- [BUGFIX] OTLP: Do not abort an entire OTLP payload ingestion if one metric has no datapoints. #19343
- [BUGFIX] PromQL: Fix FastRegexMatcher false-positive match when a capturing group is directly adjacent to a literal (e.g.
.*\|(foo)\|.*). #19516 - [BUGFIX] PromQL: Fix a panic in range selectors using the experimental
anchoredorsmoothedmodifier when the selected series has no samples inside the query window, for example a query evaluated inside a scrape gap. #19431 - [BUGFIX] PromQL: Fix empty results when a subquery with
@is used as the matrix argument of a call that is not step-invariant (for examplequantile_over_time(scalar(x), metric[...:...] @ T)). #19187 - [BUGFIX] PromQL: Make the "found duplicate series for the match group" many-to-many matching error message deterministic by sorting the two duplicate labels. #18810
- [BUGFIX] PromQL: Preserve parentheses around duration literals on Expr.String() round-trip. #19403
- [BUGFIX] PromQL: Reject duration-expression offsets and
@ start()/@ end()before range selectors, matching the existing rejection of literal offsets and@ <timestamp>. #19406 - [BUGFIX] PromQL: Report the position of the histogram argument rather than of a scalar argument in the native histogram NaN observation annotations of
histogram_quantileandhistogram_fraction. #19330 - [BUGFIX] 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. #19266
- [BUGFIX] Rules: Fix a panic when a rule manager created without a logger loads a rule file containing multiple YAML documents. #19433
- [BUGFIX] Scrape: Do not append a stale marker for a series that is still exposed when the storage returns a new series reference for it. #19328
- [BUGFIX] Scrape: JSON log formatter correctly format scrape target info. #19472
- [BUGFIX] 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. #19450
- [BUGFIX] TSDB: Fix out-of-order chunk ID overflow by wrapping
firstOOOChunkIDmodulo 2^23 instead of growing unbounded. #19216 - [BUGFIX] UI: Remove an extraneous X-axis tick mark in the native histogram chart when using the "linear" display mode. #19326
- [BUGFIX] discovery/aws: Avoid a panic when an ElastiCache ARN is missing its resource ID. #19333
- [BUGFIX] discovery/aws: Do not panic on MSK clusters whose optional API fields are absent. #19584
- [BUGFIX] discovery/aws: Do not panic when the EC2 API omits optional instance fields. #19512
- [BUGFIX] discovery/aws: Don't panic on ECS tasks with absent optional fields. #19396
- [BUGFIX] discovery/aws: MSK Optional Custom Configuration Fields #19422. #19422
- [BUGFIX] discovery/ionos: Fix panic when the IONOS API omits optional server fields. #19418
- [BUGFIX] discovery/kubernetes: Populate
__meta_kubernetes_service_loadbalancer_ipfromstatus.loadBalancer.ingress, falling back to deprecatedspec.loadBalancerIP. #19404 - [BUGFIX] 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. #19312
- [BUGFIX] promtool: Fixed
tsdb dumpsilently dropping native histogram samples. #18051 - [BUGFIX] scrape: fix data race in
Manager.TargetsDroppedCountsto avoid miscounting dropped targets. #19304 - [BUGFIX] scrape: fix nil histogram when native and classic histograms are mixed in one metric family. #19452
- [BUGFIX] TSDB: Fix WAL and GC log messages to emit human-readable duration strings instead of nanosecond integers. #19307
4.47
- release: wait for Go proxy propagation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11219
- [Mount] Add ChunkGroup seeking tests and fix boundary handling by @ssshr-66 in https://github.com/seaweedfs/seaweedfs/pull/11223
- fix(mount): bound reader cache memory across open files by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11220
- iam: preserve native Admin when IAM policies are attached (#11226) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11232
- fix(s3api): evaluate aws:SourceIp from the direct TCP peer, not forwarded headers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11231
- admin: reject IAM policy deletion while still attached to a user/group by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11230
- filer/postgres: create filemeta table on startup via createTable config by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11229
- helm: pass -ip to admin so StatefulSet becomes Ready on 4.46 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11236
- admin: allow insecurely binding to any IP if -allowInsecureNoAuth is set by @AlessandroZanatta in https://github.com/seaweedfs/seaweedfs/pull/11228
- filer: widen metadata-subscription readahead buffers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11237
- volume server: release the store lock before scrubbing EC volumes by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11235
- helm: supply admin auth in CI renders that enable admin by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11239
- fix(volume): handle faulty storage media (Go + Rust) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11233
- fix: rebase on latest master before pushing star history chart by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11240
- [Volume] Validate record counts after volume copy by @ssshr-66 in https://github.com/seaweedfs/seaweedfs/pull/11238
- fix(filer): use path.Split instead of filepath.Split for filer paths by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11246
- rust volume: move the crate to edition 2024 by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11244
- iceberg: fix OAuth token expiry handling (401 + token-exchange + configurable TTL) by @lucndm in https://github.com/seaweedfs/seaweedfs/pull/11242
- Mount req with collection by @shaofeng66 in https://github.com/seaweedfs/seaweedfs/pull/11249
- rust: prevent phantom volumes + validate collection hint in mount_volume_by_id by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11254
- s3: bucket-policy Allow must not override an identity explicit Deny by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11256
- filer: end local-only metadata subscriptions when remote peers appear by @Tyagiquamar in https://github.com/seaweedfs/seaweedfs/pull/11251
- fix(volume): Harden Volume Copy Validation and Failure Handling by @ssshr-66 in https://github.com/seaweedfs/seaweedfs/pull/11252
- rust volume: stop glibc retaining freed EC buffers as unreturnable heap by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11255
- fix(s3api/sts): respect MaxSessionLength config in DurationSeconds validation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11267
- rust volume: honour is_last in the tail sender instead of rescanning the whole volume by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11273
- build(deps): bump github.com/rclone/rclone from 1.75.0 to 1.75.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/11274
- fix(s3api/iam): avoid transient AccessDenied from full reloads on single IAM file changes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11271
- fix: write the new key when a remote-synced file is renamed by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11270
- fix(s3api/audit): surface OIDC identity claim in audit log for STS sessions by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11269
- mount: rebuild expired directory cache on entry lookup by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11268
- fix(vacuum): stop comparing compact size against the live needle map by @Koalk in https://github.com/seaweedfs/seaweedfs/pull/11263
- s3 sink: report the source read error the SDK hides by @AdzerKI in https://github.com/seaweedfs/seaweedfs/pull/11277
- s3: fail closed on unsupported bucket-policy condition operators by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11283
- feat(s3api): add bucket quota S3 extension via ?seaweedfs-quota by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11279
- s3: close list-type / ownership-controls routing mismatch by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11280
- s3: reject virtual-host bucket retargeting via X-Forwarded-Host by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11281
- fix(master): stop goraft server on shutdown and bump raft to v1.2.1 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11284
- test(fuse_failover): dump chunk list and hex on append corruption by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11285
- [Volume] Scrub every disk's EC shards for a volume id, not just the first by @franchb in https://github.com/seaweedfs/seaweedfs/pull/11258
- Fix mount eio on manifest resolve failure by @giftz in https://github.com/seaweedfs/seaweedfs/pull/11287
- [Mount] Cache Chunk Manifest Resolution for Repeated File Opens by @ssshr-66 in https://github.com/seaweedfs/seaweedfs/pull/11266
- fix(vacuum): batch fsync in makeupDiff to prevent test timeout by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11289
- master: name the unlabeled disk layout plainly in assign errors by @lucndm in https://github.com/seaweedfs/seaweedfs/pull/11290
- s3: gate internal LifecycleDelete gRPC behind admin Bearer auth by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11291
- iceberg/s3tables: confine stored metadataLocation to the authorized table bucket by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11292
- test/ec: fix EC interruption matrix slot exhaustion by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11295
- filer: accept gcs credentials file paths in the guarded remote client builder by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11296
- filer: apply SSRF guard to the lazy-remote fetch/list/delete paths by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/11294
- @AlessandroZanatta made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11228
- @lucndm made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11242
- @Tyagiquamar made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11251
- @AdzerKI made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/11277
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.46...4.47
v1.0.0-beta1
- Refactoring underlying code and improving performance, updating the UI, etc. by @vcaesar in https://github.com/zincsearch/zincsearch/pull/1006
- @vcaesar made their first contribution in https://github.com/zincsearch/zincsearch/pull/1006
Full Changelog: https://github.com/zincsearch/zincsearch/compare/v0.4.11...v1.0.0-beta1
v1.0.0-beta1
- Refactoring underlying code and improving performance, updating the UI, etc. by @vcaesar in https://github.com/zincsearch/zincsearch/pull/1006
- @vcaesar made their first contribution in https://github.com/zincsearch/zincsearch/pull/1006
Full Changelog: https://github.com/zincsearch/zincsearch/compare/v0.4.11...v1.0.0-beta1