The slow request, start to finish, in one trace.

Spans arrive over OTLP from the SDK you already run, or from eBPF with no code changes at all. The service graph, the critical path and the exceptions come with the trace rather than as a separate product.

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

insight / application performanceLIVE
checkout · POST /api/checkout
POST /api/checkout2.14 s
cart.load61 ms
chat gpt-4o1.68 s
db.query SELECT card112 ms
payment.charge241 ms

What you get

Included on every plan, including the free tier.

insight / service graph
Edgeslast 1h
CALLER → CALLEERATEP95
web → checkout42/s2.14 s
checkout → cart42/s61 ms
checkout → openai41/s1.68 s
checkout → postgres84/s112 ms
checkout → payments39/s241 ms
Critical path: checkout → openai · 78% of the request

Computed from the spans themselves, with no service map to declare.

How it gets there

Three steps, then it is reporting.

Your application knows one thing, the agent's OTLP endpoint. The agent adds the credentials on the way out.

  1. Point your OTLP exporter at the agent on 4317 or 4318.

  2. The agent adds the auth and tenant headers.

  3. Traces are searchable in Insights as they arrive.

Demonstration data
terminal · environment
# 01 · point the exporter at the agent
export OTEL_SERVICE_NAME=checkout
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
opentelemetry-instrument python app.py
# 02 · the agent adds auth and tenant headers
agent → xScaler · headers added, 5 spans forwarded
# 03 · first trace searchablereporting
service.name "checkout"
span.name "POST /api/checkout"
duration 2.14 s
spans 5

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
{ resource.service.name = "checkout" && duration > 2s }

Requests over the latency budget.

One service, one threshold, every trace that broke it.

02 · TRACEQL
{ status = error && span.http.route != nil }

Failing routes, grouped by the route itself.

Errors on spans that carry a route, so the result groups cleanly.

03 · TRACEQL
{ span.db.system = "postgresql" && duration > 500ms }

Queries holding the request open.

Database spans long enough to matter to the user.

Questions

What application teams ask first.

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

Book thirty minutes

None to start. eBPF gives RED metrics and server and client spans without code changes. SDK instrumentation buys span detail rather than basic coverage.

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.