Saltearse al contenido

Observabilidad

NamiDB está instrumentado con tracing en cada función async pub del workspace. La exportación a OpenTelemetry está en el roadmap; hoy se cuenta con:

Tracing

Ventana de terminal
export RUST_LOG=namidb=info,namidb_storage=debug
export NAMIDB_LOG_FORMAT=json # opcional, estructurado

Cada llamada de Cypher emite un span de tracing con el plan parseado, los operadores físicos elegidos y los tiempos por etapa.

Volcado de profile por etapa

Ventana de terminal
export NAMIDB_PROFILE_DUMP=1

Después de cada query, NamiDB imprime un bloque de contadores por etapa a stderr: parse, lower, optimise, execute, con conteo de filas y µs / etapa.

Stats de caches (Python)

print(client.cache_stats())
# {
# "adjacency": {"hits": ..., "misses": ..., "bytes": ...},
# "node_view": {...},
# "sst": {...}
# }

Conectar esto a los dashboards para detectar desajustes entre working set y presupuesto.

Endpoints de health del servidor

Ventana de terminal
curl http://your-host:8080/v0/health | jq .
curl http://your-host:8080/v0/version | jq .

/v0/health devuelve la versión del manifest, el epoch y el timestamp del último commit.

Roadmap

  • /v0/metrics — exposición Prometheus (counters, histograma de latencia, tasas de hit de cache).
  • Exportación OpenTelemetry — spans + métricas sobre OTLP.
  • EXPLAIN ANALYZE estructurado — conteo de filas en runtime por operador.

Seguir el progreso en github.com/namidb/namidb/issues.

Ver también