An agent run is a trace, not a log file.

Agent frameworks that emit OpenTelemetry spans land here without a plugin. Every step becomes a span, every model call carries its token counts and finish reason, and a run that stalls names the tool call it stalled on.

Included on the free tier: 20,000 active series, 50 GB of logs and 50 GB of traces a month. No card.

insight / agent observabilityDemonstration data
agent.run support-triage
agent.run4.82 s
plan434 ms
retrieve kb675 ms
chat gpt-4o1.98 s
tool crm.lookup1.30 s
respond433 ms

Agents it reads spans from

  • LangGraph
  • LlamaIndex
  • CrewAI
  • OpenAI Agents SDK
  • Pydantic AI
  • Semantic Kernel
Trademarks

What you get

Included on every plan, including the free tier.

trace / agent.run research-brief
research-brief · 6.10 s
agent.run research-brief6.10 s
plan380 ms
tool web.search920 ms
chat gpt-4o summarise1.64 s
tool web.fetch ×31.10 s
chat gpt-4o draft1.81 s
respond190 ms

How it gets there

Three steps, then it is reporting.

Point the framework’s exporter at the agent. The agent holds the credentials, not your application.

  1. Point your framework’s OTLP exporter at the agent on 4317.

  2. The agent forwards spans with the standard two headers.

  3. Runs appear in Insights as traces you can search.

terminal · environment
# 01 · point the framework exporter at the agent
export OTEL_SERVICE_NAME=support-triage
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
python run_agent.py
# 02 · the agent forwards with the standard two headers
agent → xScaler · 6 spans forwarded
# 03 · run searchablereporting
span.name "agent.run"
gen_ai.agent.name "support-triage"
duration 4.82 s
gen_ai.usage.input_tokens 11,154

What you can ask

What that looks like as a query.

Paste any of these into Insights, or use them as an alert rule.

01 · TRACEQL
{ name = "agent.run" && duration > 10s }

Runs that took too long, whatever the cause.

Start from the run, then open the step that held it.

02 · TRACEQL
{ span.gen_ai.response.finish_reasons = "length" }

Calls truncated by the context window.

Model calls that hit max tokens rather than finishing.

03 · PROMQL
sum by (gen_ai_request_model) (
  rate(gen_ai_client_token_usage_sum[1h]))

Which model the token spend is going to.

Token usage per model, ready for your own rate.

Questions

What AI teams ask before the first run.

Something not here? Talk to an engineer who works on the platform.

Book thirty minutes

Any framework that exports OpenTelemetry spans, with no plugin to wait for. Point its OTLP exporter at the agent on 4317 and the run arrives as a trace. Where a provider SDK has no instrumentation package yet, wrap the call in a span of your own.

Start on the free tier.

20,000 active series, 50 GB of logs and 50 GB of traces a month, 90-day retention, and the whole of Insights.