TokenPolice
Docs
Dashboard

Model Log

Every model call your app made, newest first — tokens, cost, latency and success or failure per request.

Model Log is the most granular view of your traffic: one row per provider call, newest first, each linking to the run it belongs to.

What it's for

When a number elsewhere looks wrong, this is where you check it against individual calls. It covers every modality — chat, image, audio, embedding and the rest — not just chat.

Only calls that reached the provider appear here. A blocked request is stopped before the provider, so it never becomes a row on this tab — blocks live on the Audit log. Structural agent, tool and chain steps are excluded too; see Traces for those.

The columns

ColumnShows
TimeWhen the call started.
StatusGreen OK, or a red error kind — hover for the message and HTTP status.
KindThe type of call: chat, embedding, image, and so on.
ModelThe model, with its provider underneath.
UserThe user_id your app supplied.
In / OutInput and output tokens.
CostUSD at provider list prices.
DurationWall-clock time, as your user experienced it.
TraceThe first characters of the run id, linking to the full trace.

Filters

  • Status — all, success, or failed.
  • Rows per page — 50, 100, 200 or 500, with page navigation and a total count.
  • The shared time range at the top of the dashboard.

What to look for

  • Every row's User column is empty — your app isn't threading user_id, so per-user rules can't pool anything. See anonymous users.
  • A cluster of failed rows at one timestamp — a provider incident or a bad deploy. Compare against the error panels on Models.
  • Cost of $0.00 on a real call — the model has no price on file, or the provider returned no usage. Both are itemised on the Unpriced calls tab.
  • One trace id repeating down the page — a single run making a lot of calls. Open it and check whether a loop rule should be catching it.
  • Durations far above your provider's normal — the same calls are charted on the Models tab as p50 and p95.

Next