Observability
Agent Stream is the source of truth for AI usage in your organisation, with no external time-series database required to see it, and it still exports to the tools you already run. Trust-fabric integration →
What gets recorded
| Signal | What it shows |
|---|---|
| Usage telemetry | Multi-resolution spend, token, and request time-series, from 30-second to yearly buckets, per surface, stage, member, and team. |
| Operational metrics | Connection volume, error rate, data throughput, and latency percentiles, at p50, p95, and p99, for fleet health. |
| Rejection taxonomy | Every guardrail block classified into a stable set of categories, such as hate, toxicity, prompt injection, jailbreak, PII, secrets, and policy violation, broken down per team, member, surface, and stage. |
What the dashboard shows
A real-time management dashboard shows cost, tokens, latency, and throughput, with per-surface breakdowns, and each surface has its own monitoring tab scoped to that surface alone. This is the fastest way to confirm traffic is flowing normally, spot which surface is driving cost, or see a rejection spike as it happens.

What comes back in response headers
A buffered response carries x-agent-stream-* headers: trace ID, provider, model, tokens, cached-tokens, cost, cache hit or miss, and ingress skin. A client can read cost and usage figures directly from the response headers without parsing the body. A streamed response carries the request-time subset of the same headers.

Exporting to your own stack
Nothing here is locked to Agent Stream’s own dashboard. Traces, metrics, and logs export through:
- a native Langfuse connector, with optional request and response capture.
- OpenTelemetry OTLP export of traces, metrics, and logs, to Datadog, Grafana, Jaeger, or any OTLP-compatible collector.
- a Prometheus scrape endpoint.
- a content-capturing webhook.
Content capture, the request and response bodies themselves rather than metadata, is opt-in per surface through explicit log flags, so enabling observability does not automatically mean every prompt and response is stored or exported.
Why this matters
Every telemetry signal carries the same identity context the rest of the platform uses: surface, variant, member, and team. A latency spike or a policy denial can be attributed to a specific surface or caller rather than appearing as an undifferentiated failure, and the same figures that drive the in-appliance dashboard are the ones available for export into an existing observability stack.
Related
- Cost and usage governance: The budgets and alerts built on the same usage telemetry.
- Guardrails: The safety layers behind the rejection taxonomy.
- Governance records: The signed, per-interaction transcript that complements this operational telemetry.
- Teams and attribution: How telemetry rolls up to members and teams.
- LLM drift detection: The dedicated dimension charts that sit alongside this operational telemetry.
Glad to hear it! Please tell us how we can improve more.
Sorry to hear that. Please tell us how we can improve.
Thank you for sharing your feedback so we can improve your experience.