Requests, Traces, Sessions, and Usage¶
Use Requests to explain a gateway decision, Traces to follow execution, Sessions to group related activity, and Usage to understand physical work and spending. A single application action can appear in all four views.
Choose the right evidence¶
| View | What it means | Authority |
|---|---|---|
| Overview | Canonical request aggregates, recorded spend and scoped operational attention | Independent observability.read, usage.read, budgets.read and team.read coverage |
| Requests | Canonical gateway decisions, physical attempt outcome and permitted evidence | Decision store; available even if Collector is down |
| Traces | Related gateway, managed runtime and external application spans | Organization + Team + Trace ID; authenticated producer identity |
| Sessions | Related activity with the same server-resolved namespace and Session ID | Grouping only, never private conversation ownership |
| Usage | Known, estimated and unknown physical-attempt ledger amounts and reservations | Financial ledger; never uploaded span totals |
How the records relate¶
For example, a support conversation turn can invoke an Agent, make two model calls and dispatch a lookup tool. The entry and child Requests describe decisions; spans place the work in a Trace; the conversation label groups it into a Session; physical model attempts and the tool dispatch contribute Usage. The number of Requests is not the number of provider bills.
A request can have missing telemetry. A standalone external Trace can exist without a request. A Trace ID collision across Teams cannot merge access, and equal Session labels in different namespaces remain distinct. Each span is identified by source, authenticated producer and span ID within its Team Trace. Rotating a key changes credential-version provenance, not its logical external producer.
A physical provider retry/model round/tool dispatch gets its own ledger fact. Governing Organization/Team/owner/key meters can all reflect that fact without multiplying billed usage. Managed entry wrappers do not add their children's costs again. Session cost includes only ledger facts assigned to that Session, not every cost sharing a Trace.
Counts and reporting windows¶
Overview Requests counts canonical decisions, including managed wrappers and children, by receipt time. Completed and Failed are allowed decisions in succeeded and failed states; Denied is rejected admission, and other allowed states are Unresolved. Success rate excludes Denied and Unresolved. Recorded spend counts non-cancelled ledger attempts by creation time and payer Team, preserves known/estimated/unknown costs, and remains incomplete with unknown-cost attempts. The same half-open [from, to) UTC epoch-millisecond bounds carry into Requests and Usage drill-downs. Current budget constraint windows remain independent of that reporting range.
Content, retention and access¶
observability.read grants Team metadata. observability.content.read additionally permits captured names/errors/events/previews/search text; observability.export independently permits export. Own-key request permission does not open a whole shared Trace. API inference or telemetry.ingest does not grant Console inspection.
Capture is separate from private Chat retention. Deleting a Trace hides its telemetry through tombstones and eventually cleans payloads; it does not delete ledger facts or a private conversation.
Continue¶
See Operational Overview, Observe activity, usage and limits, and OTLP.