> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Observability

> Real-time tracing, analytics, drift detection, and threshold alerts for every LLM call, chain, and tool invocation.

Observability is what tells you what your agents are actually doing. Every run is captured as a chain of events with inputs, outputs, timings, token counts, and cost. From those events you get search, analytics, drift detection, and alerts — without writing any of the plumbing yourself.

## What's inside

<CardGroup cols={2}>
  <Card title="LLM Calls" icon="bolt" href="./llm-calls">
    Table of every LLM invocation with filters, search, and a detail drawer.
  </Card>

  <Card title="Traces" icon="bars-staggered" href="./traces">
    Full chain-of-calls per run — chains, tools, retries, and durations.
  </Card>

  <Card title="Analytics" icon="chart-line" href="./analytics">
    Cost by model, p50/p95 latency, error rate, and model performance.
  </Card>

  <Card title="Threads" icon="comments" href="./threads">
    Multi-turn conversations grouped from `chat` events.
  </Card>

  <Card title="Drift Monitor" icon="wave-pulse" href="./drift-monitor">
    Distribution monitoring across five metrics with composite scoring.
  </Card>

  <Card title="Alerts" icon="bell" href="./alerts">
    Threshold rules with cooldown, escalation, and SLA tracking.
  </Card>
</CardGroup>

***

## When to use what

| You want to...                                    | Use                              |
| ------------------------------------------------- | -------------------------------- |
| Find a specific run by user, agent, or input text | [LLM Calls](./llm-calls)         |
| Debug why a particular run failed                 | [Traces](./traces)               |
| Track cost and latency over time                  | [Analytics](./analytics)         |
| Inspect a multi-turn conversation                 | [Threads](./threads)             |
| Catch behavioural shifts before users do          | [Drift Monitor](./drift-monitor) |
| Get paged when something breaks                   | [Alerts](./alerts)               |

***

## The data behind the views

Every event the SDK emits lands as one of two records in the database:

* A **Run** — one execution of an agent, chain, or tool. Carries the aggregate cost, duration, status, and saved flag.
* An **Event** — a leaf record inside a run, such as `chain_start`, `tool_end`, `chat`, or `saved`.

The Observability views are all built on top of these two tables. The [SDK reference](../sdk/overview) describes the event flow and how custom events plug in.

***

## Related resources

<CardGroup cols={2}>
  <Card title="SDK event reporting" icon="paper-plane" href="../sdk/event-reporting">
    How events are batched, sent, and persisted.
  </Card>

  <Card title="Governance" icon="shield" href="../governance/overview">
    Once you can see runs, the next step is shaping them.
  </Card>
</CardGroup>
