Guides / llm cost in grafana
How to see LLM cost in Grafana
Grafana Cloud's AI observability does real-time spend tracking and per-agent cost breakdown in USD, which is more cost attribution than several LLM-native tools publish. Culpa, a local-first LLM cost, margin, and forecast ledger, prices calls from a versioned price book and joins them to the revenue each customer pays, which is the column Grafana has no reason to hold.
Why this happens
Grafana's AI observability documentation is more specific about cost than most of the LLM-native category. It lists real-time spend tracking, cost optimization and budget management for LLM usage, token analytics covering consumption patterns, and on the agentic side real-time tracking of total agent costs in USD with per-agent breakdown and cost attribution. That's genuine unit-level attribution and any page pretending otherwise would be wrong. Two things are worth knowing beyond it. The first is structural: Grafana bills by what you send it, so instrumenting LLM calls richly moves a meter that has nothing to do with your model spend, and the two bills grow together for unrelated reasons. The second is easy to miss. Grafana's own AI assistant is itself token-metered against you, with a system-initiated pool of 25 million tokens a month on Free and Pro, and its docs note that connecting through the Cloud MCP server counts you as an active AI user for that billing period even when your token usage is zero.
What this usually looks like
- Your Grafana bill and your model bill both grew and nobody separated the causes.
- You have per-agent cost in dollars and no way to set it against what the agent earned.
- Cardinality from LLM metadata pushed your metrics bill up unexpectedly.
- Somebody connected an MCP server and became a billable AI user without sending a token.
- Cost per agent exists and cost per customer never got built.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Mistakes that cost the most
| Mistake | Why it hurts | Do instead |
|---|---|---|
| Assuming Grafana can't do LLM cost attribution. | Its docs publish per-agent cost in USD with attribution, which is more than several dedicated tools offer. | Use what it already gives you, and be precise about the one thing it doesn't. |
| Treating telemetry volume as free because the platform is open source. | Grafana Cloud bills on what you send, so richer LLM traces raise a second bill alongside your provider one. | Budget telemetry as its own line, and check cardinality before adding per-call metadata as labels. |
| Overlooking that the assistant has its own token meter. | Grafana's AI features consume a token allowance, and connecting via MCP marks you an active AI user at zero usage. | Read the AI billing terms separately from the observability ones, because they're different meters. |
| Reading per-agent cost as unit economics. | It's half the fraction. Without the revenue that agent produced, the ranking is by spend rather than by value. | Join agent cost to what the customer pays, or use a ledger that already carries both. |
Run this check tonight
- Find per-agent cost in USD in your Grafana AI observability views.
- Now try to put revenue beside it, and note where that data actually lives.
- Check your Grafana ingest and cardinality bill for the month you added LLM tracing.
- Count how many people are marked active AI users against how many actually used the assistant.
Two meters moving for unrelated reasons
A modelled month where a team adds full LLM tracing: prompts, retrieval steps and tool decisions all sent as spans. Model spend is unchanged at 40M input and 8M output tokens on Claude Haiku 4.5, at real rates of $1.00 and $5.00 per million from the price book effective 2026-07-02. The telemetry volume and the per-GB rate stand in for any ingestion-billed platform. Volumes are modelled.
Instrumenting cost carries a price, and the bill it raises isn't the bill you were trying to reduce. Both belong in the same model, and almost nobody puts them there.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| 375% | modelled rise in ingested telemetry from adding full LLM tracing, with model spend unchanged | calculated | 20 GB ingested before tracing against 95 GB after, both modelled, giving a 375% increase, while modelled model spend of $80.00 a month on Claude Haiku 4.5 at real rates of $1.00 and $5.00 per million from the price book effective 2026-07-02 stays flat. Every volume here is modelled. The point is that the two meters move independently, not the size of either. |
What a generic answer can’t know
Give Grafana its due: per-agent cost in USD, real-time spend tracking, budget management, and a self-managed option, so neither attribution nor local-first is the argument here. What remains is the join. Grafana holds telemetry, and telemetry contains what happened rather than what it was worth, so cost per agent can be ranked and never divided. Culpa carries the revenue each customer pays you alongside the priced calls, so the same agent gets a margin rather than a cost, and it forecasts next month from that history with a range. It also prices from a versioned price book with effective dates, so a past month recomputes at the rate in force when it ran rather than at today's.
Questions founders ask next
Does Grafana track LLM cost?
Yes, and in more detail than several dedicated LLM tools. Its Grafana Cloud AI observability docs list real-time spend tracking, cost optimization and budget management for LLM usage, plus real-time tracking of total agent costs in USD with per-agent breakdown and cost attribution.
Does using Grafana's AI features cost tokens?
Its docs describe a system-initiated token pool of 25 million a month on Free and Pro with custom pools on contracted plans, and note that connecting through the Cloud MCP server counts you as an active AI user for that billing period even if your token usage is zero. That's a separate meter from your own model spend.
Will LLM tracing raise my Grafana bill?
It raises whatever meter your plan bills on, since spans, logs and high-cardinality labels all count. That increase tracks how thoroughly you instrumented rather than how much you spent on models, so the two bills move for unrelated reasons and need modelling separately.
What does Culpa add over Grafana here?
One column and what it enables. Grafana can tell you an agent cost a given number of dollars. Culpa carries what the customer that agent served pays you, so the same number becomes a margin, and it forecasts next month from your own per-call history with a range.
On your infrastructure
Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.
How Culpa works
Find the culprit. Not just the total.
Your dashboard shows what you spent. It stops short of who spent it. Culpa shows the conversation, the user and the feature behind it.
Your prompts stay local.
Culpa runs on your own infrastructure. What you send to a model reaches us at no point.
Every dollar has a name.
Follow any charge to the conversation, the user, the feature and the customer behind it.
See the bill before it lands.
Cost your next feature before you ship it. You get the likely bill and the worst case, at best, median, p90 and p99.
Three steps to your first answer.
Change one base URL.
Or drop in the Python or TypeScript library.
Find your most expensive conversation.
In the first session, not the first week.
Cost your next feature before you ship it.
Why the bill went up
Example dashboardCalls traced
418,209
across 3 projects
Spend this week
$378.41
+ $182 vs last week
Failed calls
312
74% retried, and you paid for all of them
+ $182 this week traced to one culprit
Spend over 14 days
Most expensive users
Next week forecast
Graded against reality. Accuracy shown as results land.
Keep reading
Sources: Grafana Cloud AI observability, Grafana pricing. Last reviewed 2026-08-03, rates effective 2026-07-02. Plain text version.