Now tracing 4.2B spans / week

Your agents run
in the dark.
Turn the lights on.

Every tool call, retry and model call — recorded span by span, with the tokens and dollars attached. Silent failures surface in seconds, not on next month's invoice.

Spend · rolling 60 min live
$486.20 6.4% vs. last hour
Runs completed
1,284
Median cost / run
$0.0374
Most expensive tenant
acme-eu · $88.10
Runaway loop detected P1

run_9f3c2a41 · support-triage v2.5.1 · eu-west-1

tool.crm.lookup 2000.31s
llm.chat gpt-4o decide2.38s
refunds.create 429 ×533.4s
refunds.create 5030.39s
llm.chat recover · 5.7K ctx2.31s
Burned before anyone looked $1,840.12

Watching production agents at

Kestrel Fathom Retail Orrery Nimbus Health Blackline Vestige Labs
Incident 2026-08-14 · Kestrel
A retry loop burned $1,840 in 40 minutes before anyone noticed.

The refunds API started returning 429s at 14:02. The agent's retry policy was exponential with no jitter and no cap on total attempts, so it kept firing — and after every failure it re-sent the entire failure transcript to GPT-4o to decide what to do next. Context grew from 1.2K to 5.7K tokens per attempt.

Nothing crashed. The dashboard was green. The only signal was the bill.

PR Priya Raghavan — Staff Engineer, Kestrel
Cumulative run cost · 14:02 – 14:42 unbounded
$2K$1.5K$1K$500$0 14:0214:1614:3014:42 expected ceiling $40
Incident cost breakdown
Retry attempts3,118
Tokens re-sent as context17.8M
Time to detection (before Nocturne)40 min
Time to detection (with loop rule)38 s
The trace explorer

This is that run,
span by span.

Every node below is a real span from run_9f3c2a41. Expand the failing tool call to see all six attempts. Click any span for its inputs, outputs, tokens and cost.

run_9f3c2a41 failed
duration 41.28sspans 13tokens 11,951 cost $0.0412started 14:02:11.402Z

Keyboard: Tab to walk the tree, / to collapse and expand.

Latency distribution · agent.run · last 24h n = 84,206
0.4s2s8s20s40s+

The second hump past 20 s is not noise — it is every run that hit the retry ceiling. Nocturne clusters it automatically and links straight to the traces.

p50
3.9s
p95
19.2s
p99
41.4s
Cost attributed by tenant · month to date synced
TenantRunsTokensCost
acme-eu41,208318M$2,984.10
northwind28,640204M$1,776.44
lumen-health12,90496M$918.02
hexa-freight8,11661M$540.71
pilot-sandbox2,0449M$74.30

Tag a run once with tenant_id and every downstream span inherits it — including retries you never wrote code for.

Tokens / hour · all agentsstreaming
0M 12% after loop guard

loop guard enabled 09:14 ↑

Alert rules3 active
Runaway loop — same tool called > 5× in one runpage
Cost per run > $0.50 for 10 consecutive runsslack
Silent success — run finished with empty outputdigest

Rules run on the ingest path, not on a 5-minute cron, so a loop is caught mid-run. Median alert latency across our fleet is 38 seconds from the first repeated call.

Instrumentation

Three lines. No decorators
on every function.

The SDK patches the clients you already use — OpenAI, Anthropic, LangGraph, LlamaIndex, the standard requests and httpx sessions — and emits OTel-compatible spans. If you already run an OTel collector, point it at us instead and skip the SDK entirely.

  • 1.4 ms median added per span, measured in-process
  • Async batched export; the agent never blocks on us
  • Prompt bodies redacted client-side before they leave your VPC
# pip install nocturne
import nocturne

nocturne.init(api_key=os.environ["NOCTURNE_KEY"], service="support-triage")

# everything below is traced — no other changes
with nocturne.run(tenant_id=customer.id) as run:
    result = agent.invoke({"input": message})
    run.tag(outcome=result.status)

0 ms

p50 overhead per span, in-process

0 ms

p99 overhead — measured, not modelled

0 KB

Average payload per traced run

0 s

Median time to alert on a loop


"We had logs. Logs told us the agent finished. They didn't tell us it finished by giving up, twice, at a cost of forty cents a run."

TL Tomas Lindqvist — Platform Lead, Orrery

"Replay is the part I didn't expect to need. We re-ran 400 failed traces against a patched prompt before shipping it, offline, for about eleven dollars."

DW Dana Whitfield — Head of AI, Fathom Retail

Find the loop before
the invoice does.

Free forever under 50,000 spans a month. No card, no sales call, no "book a demo to see pricing".

developed by simple flow