Request logging
What llama-dash records per request, and the privacy and retention model.
Every completed proxy exchange is logged as one row in SQLite. The log powers the Requests page, per-model and per-key breakdowns, and the dashboard's live counters.
Logged on completion
A row is written when an exchange finishes (or the client disconnects), never on start. The write queue is bounded — if it fills under heavy traffic, dropping logs is preferred over blocking proxy traffic.
What's captured
- Per-call metadata: model, status, latency, token counts, estimated cost.
- Routing and attribution context: the matched routing rule, action, and auth mode, plus client, end-user, and session metadata (see Attribution).
- Row classification:
inferenceormcp_relay. Successful MCP relay rows are metadata-only by default; relay failures keep bounded body/header snippets for debugging.
Privacy
By default, llama-dash persists request and response body snippets for inference requests, truncated at 32 KiB, and clears stored body/header text after 3 days. Successful MCP relay calls do not persist body snippets by default; relay errors keep bounded snippets for investigation.
You can change this on the Settings page:
- Disable request-body persistence.
- Disable response-body persistence.
- Enable or disable successful MCP relay body persistence.
- Set max stored body bytes from
0to1 MiB.
Prompts and responses can contain sensitive data. Set max stored body bytes to
0, or disable request/response body capture, if request detail should keep
metadata only.
Retention
An hourly job prunes old rows — old inference rows, short-lived successful relay rows, longer-lived relay failures, and stale body/header text — to keep the SQLite file bounded. The Settings page also exposes immediate prune and SQLite compaction actions. See Log retention.
Last updated on