nokv provides operational visibility similar to RocksDB ldb / Badger CLI, with script-friendly JSON output.
go install ./cmd/nokv--workdir <path>: NoKV database directory (must containCURRENTfor manifest commands)--json: JSON output (default is plain text)--expvar <url>: forstats, fetch from/debug/vars--no-region-metrics: for offlinestats, skip attaching runtime region metrics
- Reads
StatsSnapshoteither offline (--workdir) or online (--expvar) - JSON output is nested by domain (not flat)
Common fields:
entriesflush.pending,flush.queue_length,flush.last_wait_mscompaction.backlog,compaction.max_scorevalue_log.segments,value_log.pending_deletes,value_log.gc.*wal.active_segment,wal.segment_count,wal.typed_record_ratiowrite.queue_depth,write.queue_entries,write.hot_key_limitedregion.total,region.running,region.removinghot.write_keyslsm.levels,lsm.value_bytes_totaltransport.*,redis.*
Example:
nokv stats --workdir ./testdata/db --json | jq '.flush.queue_length'- Reads manifest version state
- Shows log pointer, per-level file info, and value-log metadata
- Lists value-log segments and current head per bucket
- Useful after GC/recovery checks
- Dumps the local peer catalog used for store recovery (state/range/epoch/peers)
- Supports
--json
- Starts NoKV gRPC service backed by local
raftstore - Requires
--workdir,--store-id, and--pd-addr - Common flags:
--addr(default127.0.0.1:20160)--metrics-addr(optional expvar endpoint, exposes/debug/vars)--peer peerID=address(repeatable, uses raft peer IDs from region metadata)--election-tick,--heartbeat-tick--raft-max-msg-bytes,--raft-max-inflight--raft-tick-interval,--raft-debug-log
Example:
nokv serve \
--workdir ./artifacts/cluster/store-1 \
--store-id 1 \
--addr 127.0.0.1:20170 \
--pd-addr 127.0.0.1:2379 \
--peer 201=127.0.0.1:20171 \
--peer 301=127.0.0.1:20172When a store hosts multiple regions, include mappings for every remote peer ID
reachable from those regions (using scripts/serve_from_config.sh avoids manual drift).
- Starts the PD-lite gRPC service used by distributed mode.
- Common flags:
--addr(default127.0.0.1:2379)--workdir(optional persistence directory for region catalog + allocator state)--config+--scope host|docker(resolve defaults fromraft_config.json)--id-start,--ts-start(allocator start values)--metrics-addr(optional expvar endpoint, exposes/debug/vars)
Example:
nokv pd \
--config ./raft_config.example.json \
--scope host \
--metrics-addr 127.0.0.1:23790- Combine with
RECOVERY_TRACE_METRICS=1for recovery validation. - In CI, compare JSON snapshots to detect observability regressions.
- Use
nokv stats --expvarfor online diagnostics and--workdirfor offline forensics.