Skip to main content

Observability

Every agent decision,
captured. Not just a mere log.

Add the SDK and every reasoning step, tool call, retrieval and handoff your agent makes in production becomes a structured, replayable trace.

Observability in the Netra dashboard

Trusted by teams shipping agents in production

What is Observability?

A structured record of every step your agent takes. Netra captures each LLM call, tool call and retrieval as a span inside a trace, with inputs, outputs, latency, tokens and cost. Sessions, users and tenants group those traces, so you can go from a customer's complaint to the exact step that caused it.

Find the step that failed, not just the request that did

Every LLM call, tool call and retrieval is its own span on a timeline, with inputs, outputs, latency and tokens. A bad answer points at the step that caused it.

Tell every step apart by type

Span, generation, embedding, tool and agent types are assigned automatically, so each step shows up as what it is.

Tell every step apart by type: Docs (opens in new tab)

Know what every customer costs you

Set a tenant ID once in middleware and every trace, token and dollar after it is attributed to that customer. The same views work for every agent, session and user.

Switch between agent, tenant, session and user views

Agent cost, latency and tool use; tenant spend; sessions as whole conversations; every trace for one user.

Switch between agent, tenant, session and user views: Docs (opens in new tab)

Debug the journey, not 40 requests

Group multi-turn interactions by session and user, then drill from session totals to the exact span.

Debug the journey, not 40 requests: Docs (opens in new tab)

Save the views your team checks

Search by name, time range, status or any custom attribute, choose your columns, and save the filter.

Save the views your team checks: Docs (opens in new tab)

See how the whole system is behaving

Latency percentiles, error rates, cost and tokens across all of your traffic, out of the box. Then build the dashboards your team will actually open.

See detailed analytics of your traces

Latency percentiles, error rate, request volume, cost, tokens and time to first token across every agent.

See detailed analytics of your traces: Docs (opens in new tab)

Build custom dashboards

Six chart types over the same metrics, segmented by environment, user, session or tenant.

Build custom dashboards: Docs (opens in new tab)

Filter down to what matters

Narrow by model, user, session, error or PII flags, and by latency or cost range.

Filter down to what matters: Docs (opens in new tab)

Reuse widgets across dashboards

Add a widget to as many dashboards as you like, or clone a whole one, so every team reports on the same numbers.

Reuse widgets across dashboards: Docs (opens in new tab)

Fix it where you work, and make sure it stays fixed

Pull the failing trace into your IDE through MCP, then turn it into a test case. The same bug can't ship twice.

Debug using MCP

Bring traces, spans and sessions into Cursor, Claude Code, Windsurf or Codex through the Netra MCP server.

Debug using MCP: Docs (opens in new tab)

Look up any trace or session

Fetch spans by trace ID, filter traces with pagination, and inspect session metrics without leaving your editor.

Look up any trace or session: Docs (opens in new tab)

Add a trace as a test case

Turn a failing production trace into a test case, so the bug you just found becomes a check in your next evaluation.

Add a trace as a test case: Docs (opens in new tab)

Grow a dataset from your editor

Create a dataset and add items one at a time or in bulk, straight from your coding agent.

Grow a dataset from your editor: Docs (opens in new tab)

Keep your stack, add the context it's missing

Built on OpenTelemetry with custom exporters, so Netra adds agent-level context without asking you to rip out what already works.

  • OpenTelemetry
  • LangChain
  • LangGraph
  • CrewAI
  • LlamaIndex
  • OpenAI
  • Anthropic
  • LiveKit
  • Vapi
  • Pinecone
  • Datadog
  • MCP

Instrument once, in minutes

One Netra.init() traces 30+ AI libraries, including model providers, frameworks and vector databases, with no code changes.

Docs (opens in new tab)

Add decorators and manual spans

@workflow, @agent, @task and @span for minimal-code tracing, plus manual spans for anything custom.

Docs (opens in new tab)

Trace voice agents end to end

Speech-to-text, the reasoning LLM and text-to-speech land in one trace, so a delay shows up on the stage that caused it.

Docs (opens in new tab)

Control what's captured

Choose which libraries are instrumented, and switch off prompt and response capture while keeping latency, token and cost metrics.

Docs (opens in new tab)

In production

Every agent, every tenant, in real time

How Pencil watches every agent, every tenant

Sumukh Avadhani, CTO and Co-founder, Pencil
Sumukh AvadhaniCTO and Co-founder, Pencil
Netra turned our ad-agent stack from a black box into a clear control center. We can see what every agent is doing, for every tenant, in real time, and Netra now processes over 1M spans every day for Pencil. Issues that once took hours to debug now take minutes.
Frequently Asked Questions

Everything You Need to Know About Observability

Can't find the answer here? The Observability docs go deeper, or talk to our team.

What does a Netra trace include?

The complete execution of a request: LLM calls with prompts, completions and model parameters, tool invocations, retrieval steps, token usage, latency per step, cost, errors and any custom metadata you attach.

What's the difference between a trace and a span?

A trace is the whole journey of one request. Spans are the individual operations inside it — each LLM call, tool call or retrieval — arranged parent-to-child.

Which ways can I instrument my agent?

Three, and they mix: auto-instrumentation with no code changes, decorators such as @workflow, @agent and @task, and manual spans for full control.

How do I track agents, sessions and users?

Use the @agent decorator for agent execution, set_session_id to group related interactions, and set_user_id to attribute traces to a person. set_tenant_id does the same for a customer.

How are costs tracked?

Token usage and cost are captured automatically for supported providers and can be broken down by model, tenant, user or time range. For a custom gateway or unsupported provider, attach usage as span attributes.

Can I keep prompts and responses out of Netra?

Yes. Content capture can be switched off while latency, token and cost metrics are kept, and you choose exactly which libraries are instrumented.

Start today

See the step that broke before the ticket lands

Install the SDK and see your first trace in minutes. Free to start.