Analytics & Logs
modelux captures every request in ClickHouse for fast analytics and keeps a full decision trace so you can answer “why did this request go to that model” for anything in your history.
Request logs
Every request gets a log entry with:
- Timestamp, model, provider, project
- Input and output (tokens + optional full content based on retention config)
- Cost — input cost, output cost, total, in USD
- Latency — time-to-first-token and total latency
- Status — 2xx/4xx/5xx with error class on failures
- Decision trace — attempts, reasons, per-attempt metrics
- Tags — whatever custom tags you attached to the request
- Session grouping —
conversation_id+trace_id(see Session grouping) let you roll requests up into threads and agent runs
Browse logs in the dashboard or query via the management API. Logs are searchable by tag, user, project, status, latency threshold, session, and time range.
Analytics
The analytics page aggregates logs into:
- Volume — requests over time, stacked by model or provider
- Cost — total cost over time, broken down by model/provider/project/tag
- Latency — p50/p95/p99 percentiles per model
- Error rates — grouped by error class and provider
- End users — top users by spend, volume, latency
- Forecasts — projected monthly spend with period-over-period comparison
Filters: date range, project, model, provider, status, tags.
Decision traces
A decision trace answers: what routing strategy ran, which attempts were tried, why they succeeded or failed, and what was chosen.
Example:
config: @production (v4)
strategy: fallback
attempt_1 claude-haiku-4-5 timeout (2000ms)
attempt_2 gpt-4o-mini 200 OK
decision: fallback → attempt_2
reason: primary timeout, secondary healthy
Click any request in the dashboard to see the full trace.
Log retention
Every request log, decision trace, and analytic is retained for the full life of your account — on every plan, Free included. Your history is your history.