Skip to main content

Logging

Meerkat Recall uses structured logging via the tracing crate. Control log verbosity with the RUST_LOG environment variable.

RUST_LOG Configuration

Set RUST_LOG in the elephant service environment in docker-compose.yml, then recreate that service with docker compose up -d elephant. For a directly launched binary, set it in the process environment.

Structured Log Fields

Logs carry timestamps and tracing targets. Individual events may include request, work item, document, or span identifiers. Use the fields actually present to correlate a failure; a request ID is not guaranteed on every event.

Viewing Logs

Health Endpoints

The API health endpoint returns:
This health response is illustrative; it is not evidence of completed extraction or semantic readiness. Inspect /v1/runtime/status, required readiness flags, and representative work completion before accepting a deployment. storage is the real backend-agnostic field. surrealdb remains as a compatibility alias for older clients. Docker Compose uses these for container health checks:
  • meerkat-recall serve: curl -f http://localhost:3000/v1/health every 30s
  • surrealdb: /surreal is-ready every 10s

Key Metrics to Monitor

These are operational signals to derive from your logs, proxy, runtime status, and queue inspection. This table does not imply a built-in metrics exporter. Thresholds are examples to tune for your workload.

API Metrics

Pipeline Metrics

SurrealDB Metrics

Troubleshooting Runbook

For an accepted document that is not searchable yet, inspect its pipeline status. A healthy API, a successful ingest request, and a done work item each answer a different question. Check the relevant downstream extraction and embedding stages before treating a document as ready for your application.

Alerting Recommendations