VeltrixDB Docs
v1.16 GitHub FAQ Quickstart

CLI Reference

Every command-line tool that ships with VeltrixDB — the operator CLI, backup/restore tool, migration and chaos-testing utilities, load generator, and Kubernetes integrations — with real invocation syntax pulled from each tool's source.

All tools live under cmd/ in the VeltrixDB repository and build independently with go build -o <name> ./cmd/<dir>. None of them require the full server dependency tree at runtime; each talks to a running veltrixdb server over TCP and/or the admin HTTP API, except where noted as an offline/file-based tool.

veltrix — operator CLI

The primary day-to-day operator tool: cluster health, GC/compaction status, cache and WAL stats, live dashboards, and direct key read/write/delete via the text protocol. Think redis-cli merged with kubectl top.

go build -o veltrix ./cmd/veltrix

Global flags

The usage is veltrix [flags] COMMAND [args], and the flags must come before the command: the CLI uses Go's flag package, which stops parsing at the first non-flag argument, so anything after the command is treated as an argument and a flag there is silently ignored. veltrix --watch 5 top refreshes every 5 s; veltrix top --watch 5 runs at the 2 s default. (The v1.12 CLI's own built-in help still shows the second form in its examples.) Fixed in v1.14 flags work before or after the command, so veltrix top --watch 5 and veltrix --watch 5 top are the same; put -- before an argument that starts with - (veltrix put k -- -1).

FlagDefaultDescription
--addr127.0.0.1:2112Admin/metrics HTTP address.
--tcp127.0.0.1:9000TCP data address (text protocol).
--watch0Repeat the command every N seconds, clearing the screen between runs; 0 runs once. Applies to status, nodes, compaction, replication, cache, wal, quotas, cdc, scrubber, metrics and traces, and sets the refresh interval of top (2 s when 0).
--jsonfalsePrint raw JSON instead of formatted tables (for the commands that render admin-API JSON).
--no-colorfalseDisable ANSI colors (auto-disabled when stdout is not a TTY).
--prefix(empty)Key prefix filter, used by cdc-tail.
--admin-token Fixed in v1.14(empty; env VELTRIX_ADMIN_TOKEN)Admin token sent as Authorization: Bearer to /admin/*. Not in v1.12.
--duration Fixed in v1.140Stop cdc-tail after N seconds (0 = until Ctrl+C). Not in v1.12.
--force New on main after v1.16 — ships in the next releasefalsecluster remove-node: remove a dead node without draining it (replicated mode; its acknowledged but unreplicated writes are lost).
--wait-ms New on main after v1.16 — ships in the next release0 (server default)cluster add-node / remove-node: how long the server waits for the catch-up / drain.
v1.12: no admin token The v1.12 veltrix sends no Authorization / X-Admin-Token header. Every command that reads /admin/* therefore works only against a server started without -admin-token, from a loopback address (on the host, or through an SSH tunnel / kubectl port-forward); otherwise it gets 403 (remote, no token configured) or 401 (token configured). metrics, traces, ping and the key commands use unguarded paths or the data port and are not affected. Fixed in v1.14 pass the server’s token with --admin-token or VELTRIX_ADMIN_TOKEN; without it a guarded server answers 401 and the CLI prints a hint. See Admin API.

Subcommands

SubcommandPurpose
statusFull node health + ops summary: health/readiness, index size, cache, WAL, CDC, per-disk VLog table, admission-control state. Known issue in v1.12: the readiness line checks the /readyz body for ok, but a ready server answers ready, so it always prints NOT READY; check curl -s localhost:2112/readyz instead. Fixed in v1.14 readiness comes from the /readyz status code (200 ready, 503 initializing / degraded: …).
nodesCluster topology table — role (leader/follower), Raft term, health, address, replication lag. Backed by /admin/cluster.
compaction (alias gc)Per-disk VLog GC status: size, live/dead bytes, GC ratio (color-coded), GC run counters, admission-control thresholds.
replication (alias repl)Per-replica state, consistency level, lag, ACK watermark. Fixed in v1.14 read from /admin/cluster (v1.12 reads /admin/stats).
cacheLIRS cache hit rate, fill bar, evictions, hot-key list.
walWAL bytes written, entry count, flush count, average batch size.
quotas (alias quota)Per-namespace quota usage table. Backed by /admin/quotas.
cdcCDC broker stats: events broadcast, dropped, active subscribers.
cdc-tailStreams live CDC events from /admin/cdc to stdout (Ctrl+C to stop); filter with veltrix --prefix orders/ cdc-tail. Known issue in v1.12: the formatter reads lowercase field names (op, key, timestamp_us) while the server emits Op, Key, Timestamp, so the op and key columns print —; on v1.13 and earlier use curl -N "localhost:2112/admin/cdc?prefix=orders/" to see the events. Fixed in v1.14 it decodes Op / Key / Value (base64) / Timestamp and shows a value preview.
scrubberData-integrity scrubber status from /metrics: records scanned, corruption count.
metrics [filter]Raw Prometheus metrics, optionally grep-filtered by substring. An unknown command containing _ is treated as a filter, so veltrix vlog_gc works too.
tracesRecent OTel spans (slow ops and errors) from the in-process ring buffer.
topLive full-screen dashboard until Ctrl+C, refreshing every --watch seconds (2 when --watch is 0). On v1.13 and earlier the flag goes before the command: veltrix --watch 5 top (since v1.14 either position works).
pingRound-trip latency check — 5 TCP PINGs plus one HTTP /healthz check.
put KEY VALUEWrite a key via the text protocol (one connection per call; remaining arguments are joined with spaces as the value).
get KEYRead a key via the text protocol; prints the reply line (an ERR ... line for a missing key).
del KEYDelete a key via the text protocol.
checkpointForce a WAL checkpoint on all disks. Calls POST /admin/checkpoint. On v1.16 and earlier, restart the node cleanly afterwards: writes made after a runtime checkpoint are lost on a crash until then (details).
backup DEST_DIRTrigger a full backup of the running server to DEST_DIR on the server host. Calls POST /admin/backup; the server process writes the files. Incremental backups are only available through the endpoint itself. Same v1.16-and-earlier caveat as checkpoint: restart the node cleanly after the backup.
cluster members | add-node ID@HOST:PORT | remove-node ID New on main after v1.16 — ships in the next releaseOnline membership over GET / POST /admin/cluster/members and DELETE /admin/cluster/members/{id} (aliases ls, add, rm). HOST:PORT is the new node’s client --addr. A 202 (raft learner added, promotion pending) is reported, not treated as an error. See the membership runbook.
versionPrint the on-disk schema version + encryption status (/admin/version).
helpPrint the built-in usage text.

Fixed in v1.14 cache, compaction, status and top read the untagged CacheStats / VLogStats fields, quotas reads QuotaSnapshot, traces reads start_unix_ns, and a text-protocol ERR … from get is shown as-is. On v1.13 and earlier some of these fields print empty or zero; use --json or curl on the endpoint.

Examples

veltrix status
veltrix --watch 5 top
veltrix --watch 5 compaction
veltrix --json status
veltrix --prefix orders/ cdc-tail
veltrix metrics vlog_gc
veltrix put mykey "hello world"
veltrix get mykey
veltrix backup /mnt/backup/2026-07-05
veltrix cluster members                       # next release (main after v1.16)
veltrix cluster add-node n4@10.0.0.14:9000
veltrix cluster remove-node n2
veltrix checkpoint
veltrix --addr 127.0.0.1:2112 --tcp 127.0.0.1:9000 status

veltrixdb-backup — backup and restore tool

Offline backup and restore, including point-in-time recovery (PITR) and direct cloud upload/download to S3, GCS, or Azure. Every command takes its flags after the subcommand (veltrixdb-backup full --data-dirs=... --dest=...); veltrixdb-backup <command> -help lists them.

Never point it at a running server's data dirs full, incremental and full-cloud open the data directories with the tool's own engine instance. Nothing locks the directories, so against a live server this runs a second engine on the same files — in testing it produced an empty backup and truncated the live wal.log and vlog_active.dat. (The tool's own usage text still says backups are safe against a live engine; they are not.) To back up a running server use POST /admin/backup or veltrix backup DEST_DIR, then upload the result. Use veltrixdb-backup only on a stopped node's directories; restore and restore-pitr also require the server to be stopped.
go build -o veltrixdb-backup ./cmd/backup

Local backup subcommands

SubcommandKey flagsPurpose
full--data-dirs (required), --dest (required), --cache-mb (default 64)Create a full backup of a stopped node's data dirs.
incremental--data-dirs, --dest, --base (all required), --cache-mb (default 64)Create an incremental backup relative to a base backup directory (its manifest.json). Server stopped.
restore--chain, --data-dirs (both required)Restore from a comma-separated backup chain (oldest first). Engine must be stopped.

Point-in-time recovery subcommands

SubcommandKey flagsPurpose
archive-status--archive (required)Show WAL-archive segments, version range, and time coverage per disk.
restore-pitr--base-backup, --archive, --until, --data (all required)Restore a full base backup plus archived WAL up to an exact version:N or RFC3339 timestamp. --data is a comma-separated list of fresh, empty directories. Server stopped.

Cloud subcommands

SubcommandKey flagsPurpose
upload--src, --provider, --bucket, plus provider auth flagsUpload a local backup directory to S3 / GCS / Azure.
download--cloud-path, --dest, --provider, --bucketDownload a cloud backup to a local directory.
list-cloud--provider, --bucketList all backups stored in cloud storage.
full-cloud--data-dirs, --provider, --bucket, --cache-mbFull backup (engine opened by the tool — server stopped) + upload to cloud in one step.

Shared cloud flags (from cloudFlags, on upload, download, list-cloud and full-cloud): --provider (s3|gcs|azure), --bucket, --prefix (default veltrixdb-backups), and provider-specific credentials: --region/--aws-access-key/--aws-secret-key for S3, --gcs-token/--gcs-cred-file for GCS, --azure-account/--azure-key for Azure. Each credential flag can instead be supplied via environment variable: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_SESSION_TOKEN, GOOGLE_APPLICATION_CREDENTIALS, GCS_ACCESS_TOKEN, AZURE_STORAGE_ACCOUNT, AZURE_STORAGE_KEY, AZURE_STORAGE_CONTAINER.

Examples

# Running server: let the server write the backup (loopback, or add the admin token)
veltrix backup /backup/full-2026-07-05

# Stopped server: full local backup of its data dir
veltrixdb-backup full --data-dirs=/data --dest=/backup/full-2026-07-05

# Upload a local backup to S3
veltrixdb-backup upload \
    --src=/backup/full-2026-07-05 \
    --provider=s3 --bucket=my-veltrix-backups --region=us-east-1

# Full backup straight to GCS in one step (server stopped)
veltrixdb-backup full-cloud \
    --data-dirs=/data \
    --provider=gcs --bucket=my-bucket --gcs-cred-file=/sa.json

# Restore (engine must be stopped)
veltrixdb-backup restore --chain=/backup/full,/backup/inc1 --data-dirs=/data-new

# Inspect the PITR WAL archive
veltrixdb-backup archive-status --archive=/backup/wal-archive

# Point-in-time restore to an exact moment
veltrixdb-backup restore-pitr \
    --base-backup=/backup/full-2026-07-05 \
    --archive=/backup/wal-archive \
    --until=2026-07-05T14:30:00Z \
    --data=/data-new
# ...or exact to a single write:  --until=version:123456

See Backup & Restore for the full disaster-recovery workflow.

veltrix-admin — low-level administrative CLI

A separate, lower-level admin tool (cmd/admin) for offline VLog integrity checks and direct text-protocol operations that don't go through the HTTP admin API.

go build -o veltrix-admin ./cmd/admin
SubcommandKey flagsPurpose
scan--addr, --user, --passwordPrints server INFO, then attempts a SCAN over the text protocol (not currently implemented server-side — falls back to a note pointing at stats or offline check).
stats--addr, --user, --passwordPrints the server's INFO response as a formatted key/value table (including search_ready / search_loaded; see INFO).
compact--addr, --user, --passwordSends a COMPACT text command. The server has no such command, so it answers ERR and the tool prints a note that it is a no-op stub; VLog GC runs automatically in the background. Use veltrix checkpoint to force a checkpoint.
check--data or --data-dirsOffline CRC32C corruption scan — walks each disk's vlog_active.dat directly, verifying every record's stored checksum. No running server required.
repair--addr, --key, --user, --passwordTombstones (deletes) a specific key on a running server.
hash-password--user, --password, --legacy-sha256Generates a salted PBKDF2-SHA256 password hash (210,000 iterations, pbkdf2$sha256$…) and a ready-to-paste JSON snippet for the RBAC --auth-config file.

Examples

veltrix-admin scan --addr :9000
veltrix-admin stats --addr :9000 --user admin --password secret
veltrix-admin check --data-dirs /mnt/nvme0,/mnt/nvme1
veltrix-admin repair --addr :9000 --key corrupt-key-001 --user admin --password secret
veltrix-admin hash-password --user alice --password secret
veltrix vs. veltrix-admin These are two distinct binaries. veltrix (cmd/veltrix) is the modern, richly-formatted operator CLI covered above and is the one referenced by the top-level README. veltrix-admin (cmd/admin) is an older, lower-level tool focused on offline VLog integrity checks and RBAC password hashing.

veltrix-migrate — bulk data movement

Exports keys to JSONL, imports JSONL into a cluster, or copies directly between two clusters, using only the binary protocol plus /admin/stats for progress reporting.

go build -o veltrix-migrate ./cmd/veltrix-migrate
ModeFlagsPurpose
export--src (required), --src-admin, --prefix, --progress-everyReads every key from a cluster and emits JSONL ({"k": "...", "v": "<base64>"}) to stdout.
import--dst (required), --progress-everyReads JSONL from stdin and PUTs each entry into the target cluster. Idempotent.
migrate--src, --dst (both required), --prefix, --progress-everyCombines export + import in one pass, copying directly from --src to --dst.
veltrix-migrate export --src 127.0.0.1:9000 --prefix orders/ > out.jsonl
veltrix-migrate import --dst replica:9000 < out.jsonl
veltrix-migrate migrate --src primary:9000 --dst replica:9000 --prefix orders/
Key enumeration is a known gap Per an explicit PRODUCTION GAP comment in the source, there is no /admin/scan-keys endpoint yet, so listKeys() cannot actually enumerate keys from /admin/stats alone — it returns an empty list on stock builds. export and migrate are effectively non-functional for full-keyspace enumeration until that endpoint lands; import (reading pre-staged JSONL from stdin) works today.

veltrix-chaos — chaos-engineering harness

Inflicts controlled failures on running processes or Kubernetes pods to verify resilience claims: process kills, pause/resume (simulating GC pauses), network loss/delay, clock skew, and randomized soak testing.

go build -o veltrix-chaos ./cmd/veltrix-chaos
CommandUsagePurpose
killkill TARGETSIGKILL the target (process or pod).
pausepause TARGET DURATIONSIGSTOP the target, sleep for DURATION (e.g. 5s), then SIGCONT. Local targets only.
networknetwork drop|delay TARGET PCT_OR_MSInjects packet loss or delay via tc/iptables. Kubernetes targets only.
slow-diskslow-disk TARGET DURATIONIntended to inject artificial fdatasync delay via charybdefs. Currently a placeholder — warns if charybdefs isn't on PATH and performs no real fault injection.
clock-skewclock-skew TARGET ±SECONDSAdjusts the system clock on a Kubernetes pod by the given signed seconds (requires SYS_TIME).
soaksoak TARGET DURATIONApplies randomized faults (currently just pause) at random intervals across the given duration window.

Target descriptor syntax: pid:NUMBER (local process by PID), process:NAME (local process by exec name, first match via pgrep -f), or k8s:NAMESPACE/POD (Kubernetes pod, operated on via kubectl).

veltrix-chaos kill process:veltrixdb
veltrix-chaos pause pid:4821 5s
veltrix-chaos network drop k8s:veltrixdb/veltrixdb-0 10
veltrix-chaos clock-skew k8s:veltrixdb/veltrixdb-1 +30
veltrix-chaos soak k8s:veltrixdb/veltrixdb-0 10m

All faults assume root or CAP_SYS_ADMIN on the target host. Compared to Jepsen, the source notes this trades formal rigor for zero JVM/Clojure dependency and trivial embedding in Go test suites via Inflict(...).

loadtest — concurrent load generator

A read/write load tester supporting single-op and batched (MPut/MGet) modes, with live throughput reporting and P50–P99.9 latency percentiles.

go run ./cmd/loadtest [flags]
FlagDefaultDescription
--addr127.0.0.1:9000VeltrixDB TCP address.
--modemixedWorkload mode: write | read | mixed.
--concurrency50Number of parallel worker goroutines.
--duration30Test duration in seconds.
--warmup5Warmup seconds before recording stats (write-only warmup phase).
--num-keys1000000Keyspace size (key:0 … key:N-1).
--value-size64Value payload size in bytes.
--read-ratio0.7Fraction of reads in mixed mode.
--dial-timeout5TCP dial timeout in seconds.
--report-every1Live stats interval in seconds.
--safe-readsfalseOnly read keys that have already been written (eliminates not-found errors during mixed ingestion).
--key-offset0Start key index offset, for continuing a previous run without overlap.
--prototextNew in v1.7 Wire protocol for unbatched (--batch-size=1) workers: text or binary. binary is required against a server started with --net=cpp|uring|poll, which serves only the binary protocol. Batched workers always use binary.
--batch-size1Entries per MPut/MGet batch. Values >1 switch to the batched code path, engaging server-side block packing (up to ~25× disk density gain for tiny values). Latency is reported per-batch; per-key amortized = batch-P99 / batch-size.
--log-errors5Log the first N distinct errors per worker to stderr. 0 = silent.

Examples

# 30-second mixed 70% reads / 30% writes, 64 workers, 1M keyspace
go run ./cmd/loadtest --mode=mixed --read-ratio=0.7 --concurrency=64 --duration=30

# Write-only warmup then read-only benchmark
go run ./cmd/loadtest --mode=write --duration=10
go run ./cmd/loadtest --mode=read  --duration=30

# Batched writes via MPut-1024 (engages block packing)
go run ./cmd/loadtest --mode=write --batch-size=1024 \
                      --concurrency=8 --duration=30 --value-size=128

# Batched reads via MGet-256
go run ./cmd/loadtest --mode=read --batch-size=256 \
                      --concurrency=64 --duration=30

# Unbatched reads against the C++ front-end (server started with --net=cpp)
go run ./cmd/loadtest --mode=read --proto=binary --concurrency=64 --duration=30

veltrix-repair — offline value-metadata repair

New in v1.3 Offline repair for nodes that ran a build predating the value-transform WAL fix with compression (zstd is the default) or --encrypt-at-rest, and were restarted since writing data. On such nodes reads after a clean restart can return the raw compressed/encrypted blob, and reads after a crash fail with a CRC32C mismatch. The VLog bytes are intact; the tool rebuilds the lost metadata in place and rewrites the WAL as a corrected (binary) checkpoint on exit. The server must be stopped.

# 1. Always scan first (read-only)
veltrix-repair --data-dirs /mnt/nvme0,/mnt/nvme1 --scan

# 2. Repair (each wal.log is backed up first)
veltrix-repair --data-dirs /mnt/nvme0,/mnt/nvme1 --repair
FlagDefaultDescription
--data(empty)Single data directory. Ignored when --data-dirs is set.
--data-dirs(empty)Comma-separated data directories — must match the server's.
--raw-vlogs(empty)Linux: raw VLog block devices, paired with --data-dirs.
--scanfalseRead-only: report what a repair would change.
--repairfalseApply the repair and write a corrected checkpoint on exit.
--encrypt-at-restfalseLoad the at-rest key (needed to resolve encrypted records).
--encryption-key-path(empty)AES-256 key file. VELTRIXDB_ENCRYPTION_KEY takes priority.
--compressionzstdCompression the data was written with: none | flate | zstd.
--backup-dir(alongside original)Where to copy each wal.log before repairing.

Exit codes: 0 nothing to do / repaired, 1 scan found work, 2 entries could not be resolved, 3 error.

kubectl-veltrix — kubectl plugin

A dependency-free kubectl plugin that resolves a VeltrixDB pod by label selector, opens a kubectl port-forward to its admin port, and hits the HTTP admin API on localhost. No client-go or cobra dependency — it shells out to kubectl directly so auth and kubeconfig behavior always match the operator's normal workflow.

go build -o kubectl-veltrix ./cmd/kubectl-veltrix
# install: place the binary on PATH; kubectl auto-discovers it by the
# kubectl-PLUGIN naming convention.

Flags

FlagDefaultDescription
--namespace, -nveltrixdbKubernetes namespace.
--label-selector, -lapp.kubernetes.io/name=veltrixdbPod selector.
--admin-port2112Admin HTTP port on the pod.
--prefix(empty)Key prefix filter for cdc-tail.
--admin-token Fixed in v1.14(empty; env VELTRIX_ADMIN_TOKEN)Admin bearer token. Not in v1.12.
--admin-url Fixed in v1.14(empty)Admin URL to call directly instead of port-forwarding. Not in v1.12.

As with veltrix, flags go before the command (kubectl veltrix -n prod --prefix=orders/ cdc-tail); after it they are ignored. The v1.12 plugin sends no admin token: through the port-forward its requests arrive from loopback, which is enough for a server without -admin-token and gets 401 from one with it. Fixed in v1.14 flags also work after the command, --admin-token / VELTRIX_ADMIN_TOKEN reaches guarded servers, and HTTP errors exit 1.

Commands

CommandBacking endpointPurpose
statsGET /admin/statsPrint engine stats from the first matching pod.
gc-statusGET /metrics (filtered)Print VLog GC + scrubber metric lines.
checkpointPOST /admin/checkpointForce a WAL checkpoint. On v1.16 and earlier, restart the pod cleanly afterwards (details).
migratePOST /admin/migrateRun schema migrations.
quotasGET /admin/quotasList per-namespace quotas.
quota-set NS WPS MAXPOST /admin/quotasSet writes_per_sec=WPS, max_keys=MAX for namespace NS. On v1.13 and earlier it sends no burst, so the burst is set to 0; use curl to set one. Fixed in v1.14 quota-set NS WPS MAX [--burst N] (burst defaults to WPS), values are form-encoded and checked to be numbers.
cdc-tailGET /admin/cdcStream CDC events to stdout until interrupted.
versionGET /admin/versionPrint engine + schema version.
kubectl veltrix stats
kubectl veltrix gc-status
kubectl veltrix quota-set tenant_42 5000 1000000
kubectl veltrix --prefix=orders/ cdc-tail
kubectl veltrix -n veltrixdb-prod -l app.kubernetes.io/name=veltrixdb stats
backup subcommand not implemented The plugin's usage banner lists kubectl veltrix backup s3://... as a one-shot backup command, but it is marked TODO in source and not wired into the command switch — only stats, gc-status, checkpoint, migrate, quotas, quota-set, cdc-tail, and version are functional today.

repl-ship — cross-region replication shipper

Tails a local server's /admin/cdc stream and forwards each event to a remote VeltrixDB cluster's binary protocol — each PUT event becomes a binary PUT and each DEL event a binary DEL, sent one request at a time (--batch only sets how many events are buffered per flush). Flags are listed on Replication & CDC. Designed for asynchronous, eventually-consistent geo-replication, with exponential-backoff retries and a deadletter file for permanent failures.

go build -o repl-ship ./cmd/repl-ship

repl-ship --src http://primary:2112 \
          --src-token "$VELTRIX_ADMIN_TOKEN" \
          --dst-tcp replica.us-east:9000 \
          --batch 64 \
          --checkpoint /var/lib/repl-ship/ckpt
Asynchronous by design With --checkpoint (v1.1.0), a restarted shipper replays exactly the delta it missed via the durable /admin/changes feed — shipper downtime no longer loses events. The remaining limits: replication is async (writes committed at the source but not yet shipped are lost if the source region dies), conflict resolution is last-write-wins only, and there is no back-pressure signal to the source when the destination is degraded.

admin (cmd/admin)

This is the same binary documented above as veltrix-admin — its source lives at cmd/admin/main.go and it is conventionally built with the output name veltrix-admin. See that section for its full subcommand table.

Tool index

BinarySource directoryOne-line purpose
veltrixcmd/veltrixPrimary operator CLI — status, compaction, nodes, top, put/get/del, backup.
veltrixdb-backupcmd/backupOffline (server stopped) full/incremental backup, restore, PITR, and cloud upload/download.
veltrix-admincmd/adminOffline VLog integrity checks and low-level text-protocol admin.
veltrix-migratecmd/veltrix-migrateBulk export/import/migrate of keys between clusters via JSONL.
veltrix-chaoscmd/veltrix-chaosChaos-engineering fault injection (kill, pause, network, clock-skew, soak).
loadtestcmd/loadtestConcurrent read/write load generator with latency percentiles.
kubectl-veltrixcmd/kubectl-veltrixkubectl plugin wrapping the admin HTTP API via port-forward.
repl-shipcmd/repl-shipCross-region CDC-based replication shipper.
veltrix-repaircmd/veltrix-repairOffline repair of lost compression/encryption metadata (server stopped). Since v1.3.