Operational plumbing: the things a team checks before adopting infrastructure.
Metrics
GET /metrics serves Prometheus exposition — request counters and latency histograms by matched route (so cardinality can't blow up on user-supplied paths), plus per-namespace gauges for memories, index sizes, graph entities and WAL depth. Engine gauges are read live from the registry at scrape time, so they can't drift from reality.
memrust_memories{namespace="acme"} 1204
memrust_request_duration_seconds_bucket{route="/v1/recall",le="0.001"} 812
memrust_requests_rejected_total 3
Metrics name every namespace, so the endpoint needs an unscoped key when --api-key is set.
Structured logs
--log-format json emits one object per request — method, route, namespace, status, duration. text stays the default, off disables it.
GET /healthz
An unauthenticated liveness probe. This fixes a real bug: the Docker healthcheck hit /health, which answers 401 once --api-key is set, so every authenticated container would have been marked unhealthy. A probe shouldn't need to hold credentials.
Official Docker image
docker run -p 7700:7700 -v memrust-data:/data aianytime/memrustMulti-arch (amd64 + arm64), non-root, with dependency layers cached so rebuilds are fast.
cargo install memrust
pip install --upgrade memrust
npm install memrust-client