Observability
Observability is the foundation of the platform: every call your AI app makes is captured as a trace, broken down into nested observations, and enriched with cost, latency, token usage, and quality scores. From there you can debug a single request, follow a multi-turn conversation, or analyze usage by person.
ℹ
New here? Start with Sending Data In to instrument your app, then come back to explore your traces.
The data model
| Concept | What it is |
|---|---|
| Trace | One end-to-end request or run of your app (e.g. a single chat turn or API call). The top-level unit. |
| Observation | A step inside a trace. Three kinds: spans (work/tool calls), generations (LLM calls, with model, tokens, cost), and events (point-in-time logs). Observations nest to form a tree. |
| Session | A group of related traces sharing a sessionId — e.g. a whole conversation. |
| User | An end user (userId) attached to traces, enabling per-person analytics. |
| Score | A quality/evaluation value attached to a trace or observation — from the API, an evaluator, or human annotation. |
text
Session ────────────────────────────────────────────────
└─ Trace (one request)
├─ Span: "retrieve context"
│ └─ Generation: "embed query" (model, tokens, cost)
├─ Generation: "answer" (model, tokens, cost, latency)
└─ Event: "guardrail checked"
+ Scores: quality=0.9, helpfulness="good"
In this section
Related
- Core Concepts: Tracing and Observability
- Evaluation & scoring — turn traces into measured quality
- FinOps — turn traces into cost & latency insight