Skip to content

Tracing and projects

Thibaut Rey edited this page Sep 7, 2026 · 1 revision

📈 Tracing and project attribution

Recent traces and lightweight historical aggregates are stored separately. The dashboard and admin API expose request volume, tokens, cache usage, estimated cost, latency, time to first token, inference speed, provider/model selection, payload diagnostics, and time-range filtering. Client request totals and error rates use the final response returned to the caller, while provider attempts and recovered retries remain visible as routing telemetry. High-volume control-plane routes such as admin polling, health, and model discovery are not persisted as inference traces.

Useful admin endpoints:

Endpoint Purpose
GET /admin/traces?page=1&pageSize=100 Paginated recent traces
GET /admin/traces/:id Full retained trace
GET /admin/traces/export.zip Filtered ZIP export
GET /admin/stats/usage Usage by account, route, application, model, and project
GET /admin/stats/traces Historical trace statistics

sinceMs and untilMs are accepted by stats and export routes. Export also supports accountId, route, and projectId.

For a source-based explanation of prompt handling, deferred-job retention, telemetry, and the limits of transport encryption, read the prompt privacy guide.

Request bodies and headers are disabled in traces by default. When TRACE_INCLUDE_HEADERS=true, names are retained but credentials, cookies, tokens, session values, and similar secrets are redacted. Header values are not copied into long-term history.

Codex project attribution

The dashboard can generate an installer command for a user-level Codex SessionStart hook. Install it once on every execution host, then review and trust the hook with /hooks inside Codex.

Manual installation from this checkout:

read -s MULTIVIBE_PROJECT_TOKEN
export MULTIVIBE_PROJECT_TOKEN
node scripts/install-codex-project-hook.mjs --url https://multivibe.example
unset MULTIVIBE_PROJECT_TOKEN

The installer preserves existing ~/.codex/hooks.json entries and stores its secret with mode 0600. Exact session mapping wins; deterministic X-MultiVibe-Project-Root plus X-MultiVibe-Project-Host headers provide an unambiguous fallback. X-LiteLLM-Key-Alias takes precedence when present.

Set a dedicated CODEX_PROJECT_REGISTRATION_TOKEN when possible. If it is unset, ADMIN_TOKEN is used for compatibility; if both are empty, registration is disabled.

Codex does not run a newly installed or changed user hook until its exact definition has been reviewed and trusted. On the same local or remote execution host, open Codex, run /hooks, select SessionStart, review the MultiVibe command, and press t to trust it. Then start or resume a session. The hook overview must show the SessionStart hook as active rather than awaiting review.

The hook is synchronous and fail-open. New, resumed, cleared, and compacted sessions are registered. See the official Codex hooks documentation.

Project endpoints:

  • POST /admin/codex-sessions with x-codex-project-token
  • GET /admin/codex-sessions with x-admin-token
  • GET /admin/codex-projects with x-admin-token

Clone this wiki locally