mirror of
https://github.com/qdrant/qdrant.git
synced 2026-09-25 07:27:41 -05:00
* Meter remote requests and expose IO statistics to edge shard users Generalize the disk cache statistics from #10637 into a shared OpStats primitive and add a second layer counting every remote request issued through BlobFs and BlobFile, reads and writes alike. One helper at each call site drives the uio_trace request and the stats guard together, so the trace also gains the write operations. CachedBlobFs exposes both halves through stats(), DiskCacheFs exposes its remote filesystem, and both edge shards expose their filesystem, so an application can read cumulative totals. shard_update logs the IO counters moved by each phase; shard_query prints the combined dump. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * Drop DiskCacheStats in favor of remote request stats Every disk-cache fetch is exactly one BlobFile read already metered by RemoteIoStats, so the cache half duplicated the remote Read/ReadFrom counters. CachedBlobFs::stats() now returns RemoteIoStats directly. The remote stats dump now includes per-op latency histograms, which were previously only printed for cache fetches. edge-shard-query and edge-shard-update initialize serverless_compatible feature flags instead of running with uninitialized ones. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Sample uio-trace CPU usage every 10ms instead of 2ms Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Address review: not-found bucket, empty-tail reads, strum Op - OpStats counts "not found" answers separately from errors, and the trace records them as a `not_found` outcome, so length and existence probes of absent objects no longer read as failures. - A read_from tail at or past EOF is settled after the len probe and counts as a completed empty read; a not-found error skips the probe, which could only repeat the answer. - Op derives strum EnumCount/EnumIter/IntoStaticStr instead of a hand-maintained ALL array. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>