Observability
NamiDB is instrumented with tracing
on every pub async function in the workspace. OpenTelemetry export is
on the roadmap; today you have:
Tracing
export RUST_LOG=namidb=info,namidb_storage=debugexport NAMIDB_LOG_FORMAT=json # optional, structuredEvery Cypher call emits a tracing span with the parsed plan, the
chosen physical operators, and per-stage timings.
Per-stage profile dump
export NAMIDB_PROFILE_DUMP=1After every query, NamiDB prints a per-stage counter block to stderr: parse, lower, optimise, execute, with row counts and µs / stage.
Cache stats (Python)
print(client.cache_stats())# {# "adjacency": {"hits": ..., "misses": ..., "bytes": ...},# "node_view": {...},# "sst": {...}# }Hook this into your dashboards to spot working-set vs budget mismatches.
Server health endpoints
curl http://your-host:8080/v0/health | jq .curl http://your-host:8080/v0/version | jq ./v0/health returns the manifest version, the epoch, and last commit
timestamp.
Roadmap
/v0/metrics— Prometheus exposition (counters, latency histogram, cache hit rates).- OpenTelemetry export — spans + metrics over OTLP.
- Structured
EXPLAIN ANALYZE— runtime row counts per operator.
Track progress in github.com/namidb/namidb/issues.