mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-29 18:10:34 +00:00
The nudb_bytes label value on the storage_detail gauge named something the code never measured. It observes Database::getStoreSize(), which returns the storeSz_ accumulator: the cumulative payload bytes of objects this process handed to the NodeStore. That is not a NuDB file size. It excludes NuDB's keys, bucket padding and log, and it resets with the process while the files on disk do not. The name caused two concrete errors. It invited sizing the store on disk from a number that cannot do it, and it invited a write-amplification ratio against node_written_bytes -- which reads the same accessor at MetricsRegistry.cpp:836, so that ratio is a constant 1.0 and measures nothing. The nudb_ prefix was wrong too. storeSz_ is written only by Database::storeStats(), called from DatabaseNodeImp, DatabaseRotatingImp and Database itself. No backend code touches it, so the value reads the same on RocksDB. That distinguishes it from the real nudb_* family (nudb_writers_in_flight and friends), which come from getWriteStats() and are absent entirely on a non-NuDB backend. stored_object_bytes says what the value is and claims nothing about the filesystem. Docs already described the value correctly; they keep that explanation and now also record the old name, so a query pinned to it can be traced. Neither Backend nor Database exposes an on-disk size accessor and none was added -- no metric reports the store's on-disk size today. Updates the node-health panel title, description and PromQL, and the four docs that name the label value. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>