Agent-Native Observability · built on SigNoz

The OTel GenAI spec tracks every token.
It tracks zero dollars.

Burnrate enriches every GenAI span with real dollar costs — and autonomously stops runaway agent spend before the invoice arrives.

View on GitHub
span · researcher-v1 · claude-sonnet-4-6
# One line — cost on every span
provider.add_span_processor(
  BurnrateSpanProcessor()
)

# Every GenAI span now carries:
{
  "gen_ai.usage.cost.total":     0.00423,
  "gen_ai.usage.cost.input":     0.00045,
  "gen_ai.usage.cost.output":    0.00378,
  "gen_ai.usage.cost.cache_read": 0.00012,
  "gen_ai.usage.cost.currency":  "USD"
}
"If you can't observe your AI agents, you don't own them."
Without Burnrate
  • Your AI agents are a cost black box — tokens tracked, dollars invisible
  • A retry loop burns money overnight — no alert fires, you're flying blind
  • You find out which agent overspent when the invoice arrives
  • Every team hand-rolls its own pricing logic, and the numbers never match
With Burnrate
  • Full visibility into every AI call — exact dollar cost on every span
  • Budget alerts fire on real spend — per agent, per model, per service
  • Cost Guard investigates the spike and throttles the culprit autonomously
  • One shared standard — proposed upstream so every OTel backend benefits
What's Inside

From span enrichment to upstream standardization

SDK

BurnrateSpanProcessor

A zero-config OpenTelemetry SpanProcessor. One line of code enriches every GenAI span with real dollar costs using a built-in pricing table. Handles the cases a single multiplier misses: output tokens priced several times higher than input, discounted cache reads, and separate reasoning-token buckets.

  • gen_ai.usage.cost.total
  • gen_ai.usage.cost.input
  • gen_ai.usage.cost.output
  • gen_ai.usage.cost.cache_read
  • gen_ai.usage.cost.reasoning
Proposal

OTel Semconv Proposal

A complete upstream proposal targeting the OpenTelemetry GenAI SIG. Cost is structural — like token counts, not a derived metric — and belongs in the specification. If adopted, SigNoz — and every other OTel-compatible backend — gets first-class cost dashboards with zero integration work.

  • gen_ai.usage.cost.* (proposed)
  • Full attribute schema
  • Requirement levels
  • Reference implementation
Agent

Cost Guard

An autonomous incident responder built on Claude and the SigNoz MCP server. It receives budget alerts, queries traces, diagnoses the root cause through multi-turn reasoning, and throttles the culprit agent — closing the loop from detection to action without a human on-call.

  • Multi-turn Claude reasoning
  • SigNoz MCP tool use
  • Autonomous throttle action
  • Structured incident report
How It Works

From agent invocation to autonomous cost defense

1
Agent runs
Any OTel-instrumented agent — LangChain, LangGraph, raw SDK
2
GenAI spans emitted
Standard spans with gen_ai.usage.input_tokens, output_tokens
3
BurnrateSpanProcessor
Enriches each span with dollar cost attributes in real time
4
SigNoz fires the alert
Dashboards chart the spend; BurnRateBudgetAlert fires when burnrate.cost.usd crosses its threshold
5
Cost Guard throttles
Diagnoses root cause and throttles the culprit agent automatically
When an agent retries a failing call in a loop or gets silently misrouted to an expensive model, BurnrateSpanProcessor catches the cost spike in real time. SigNoz fires a budget alert. Cost Guard wakes up, queries traces via MCP, identifies the culprit and root cause, and throttles it — no human required.

Built on SigNoz, end to end

Traces, metrics, and logs — all in one OpenTelemetry-native platform. The cost metric lands in SigNoz dashboards, the budget alert is a SigNoz alert rule, and Cost Guard runs its whole investigation through SigNoz's official MCP server. One open-source platform carries the entire loop — no glue services, no second vendor.

  • Traces — every gen_ai span enriched with cost, queryable in SigNoz trace explorer
  • Metrics — burnrate.cost.usd charted per agent, model, and service in real time
  • Logs — chaos warnings and Cost Guard's incident narrative, shipped over OTLP with trace context
  • Alerts — BurnRateBudgetAlert watches real dollars, not proxy metrics
  • MCP server — Cost Guard's investigation tool: queries traces, metrics, and logs autonomously
Integration

One line. Works with any OTel stack.

app.py
# Install:  uv add burnrate-otel
from burnrate import BurnrateSpanProcessor

provider.add_span_processor(BurnrateSpanProcessor())

# Every GenAI span now carries:
#   gen_ai.usage.cost.total      → 0.00423   # USD
#   gen_ai.usage.cost.input      → 0.00045
#   gen_ai.usage.cost.output     → 0.00378
#   gen_ai.usage.cost.cache_read → 0.00012
#
# Plus a burnrate.cost.usd metric with dimensions:
#   burnrate.agent.id · gen_ai.request.model · service.name

Token counts don't pay the bill. Dollars do.

Get started on GitHub
Interactive playground — everything below is clickable

Break it on purpose. Watch it recover.

This isn't a video. The panel below simulates the real defense loop in your browser: pick a failure mode (or just hit the burn button), decide where SigNoz should draw the line, and watch detection, investigation, and recovery close on their own.

Interactive Simulation

Inject a failure. Set your threshold. Watch the loop close.

1 Pick a target agent 2 Inject a failure 3 Tune the threshold & watch it recover
Target agent
burnrate.cost.usd LIVE
per agent · $/min · streaming to SigNoz
Baseline
This chart is live right now — the flat lines are your two agents idling. Click a failure card above (or the burn button) and watch them react.
$4.00 / min

The dashed line is where SigNoz fires. Lower it and the alert catches the spike early; raise it and count the dollars that burn before anyone notices. Some failures plateau below a lazy threshold — and burn forever.

Demo Appagents
Burnrate SDK$ on spans
SigNozmetrics · alerts · MCP
Cost GuardClaude + MCP
Throttleaction
The Backbone

Every step of that loop runs on SigNoz

Burnrate doesn't rebuild observability — it teaches SigNoz to think in dollars. The metric you watched, the alert you tuned, and every query Cost Guard asked during the investigation flow through one platform.

Dashboards

burnrate.cost.usd charted live — per agent, per model, per service. Spend stops being an invoice-day surprise.

Alerts

BurnRateBudgetAlert watches real dollars, not proxy metrics. The threshold you just tuned is a SigNoz alert rule.

Logs

Chaos warnings from the agents and Cost Guard's alert-to-throttle narrative, shipped over OTLP with trace context.

MCP Server

Cost Guard's eyes. Every trace search and metric query in the investigation runs through SigNoz's official MCP server.

Run It For Real

The same loop, against a live SigNoz stack

Everything you just simulated ships in the repo — real agents, real spans, a real SigNoz alert rule, and a real throttle.

terminal
$ curl -X POST http://localhost:8001/chaos/activate/retry_loop
$ curl -X POST "http://localhost:8001/research/batch?count=5"
# SigNoz fires BurnRateBudgetAlert → Cost Guard investigates via MCP
# → diagnoses the retry loop → throttles researcher-v1 → spend recovers