The monitoring bill is the line item your team notices first and understands last. On a ten-service stack — 8 hosts, 120 containers, 250,000 active metric series, 900 GB of logs a month — it comes in at $1,068.30 on Datadog and $2,369.70 on Grafana Cloud, at the rates both vendors published as of 28 September 2026. The spread is not a feature set. It is the unit. Datadog meters hosts, indexed spans, and ingested gigabytes. Grafana meters billable series — a number that moves when you change your scrape interval, before you touch a single service.
This is the same method I used on the CI/CD comparison: a named workload, every assumption stated, every rate dated, and a counted bill. A claim without a workload is a rumor, and a monitoring bill without a stated workload is a vendor marketing one meter to you while you pay for five. Wesley Brant made the same point from the other side: the pricing page is the spec sheet. Here the spec sheet has a fine-print problem, because both vendors sell the same telemetry in units that are not the same thing.
Why usage-based monitoring bills are the surprise line item
Both vendors sell meters, not plans. The surprise comes from what each meter is a function of.
Datadog’s meters, from its billing documentation: a host is a physical or virtual OS instance, counted once per hour; the billable count under the high-water-mark plan is the maximum of the lower 99% of hourly readings — the top 1% of hours, roughly seven hours in a 720-hour month, is dropped. An APM host is any host that generates traces. An indexed span is a single request to a single service that you keep indexed, charged per million at a rate that depends on the retention tier you chose. Ingested spans and ingested logs are charged per gigabyte, flat. Custom metrics are a unique combination of metric name, host, and tags — you get an allotment per host, and the overage is a separate meter. There are also per-$1,000 meters (cloud cost management), per-session meters (RUM), and per-test meters (synthetics), each on its own row of the invoice.
Grafana Cloud’s meters are different animals. Metrics are not sold per series at all in the way you would expect: usage is max(active series, total data points per minute divided by included DPM), measured at the 95th percentile across the month, so the top roughly 36 hours are forgiven. An active series is a time series that received a data point within the previous 20 minutes. Logs, traces, and profiles are sold in three stacked dimensions per gigabyte — processed, written, retained — and Kubernetes monitoring is sold per host-hour and container-hour.
The structural fact is that the bill is a function of your configuration, not your traffic. Traffic growth moves the meters linearly. Configuration choices — retention tier, scrape interval, index rate, sampling — move them multiplicatively. That is the whole reason a monitoring bill doubles with no new code shipped: nobody deployed anything, someone extended a retention window.
The two models side by side, dated
Rates as published on 28 September 2026: Datadog’s pricing list page and product pages, Grafana Cloud’s pricing page and pricing docs.
| Datadog | Grafana Cloud | |
|---|---|---|
| Base unit | Infra host: $15/mo (annual) / $18 (monthly), Pro; $23 / $27 Enterprise | Billable series: $6.50 per 1,000 (Pro entry rate, volume discounts at scale); Enterprise from $3 per 1,000 on a $25,000/yr commit |
| App tracing | APM host: $31 (annual) / $36 (monthly); APM+Data Streams $35 / $42; +Continuous Profiler $40 / $48 | Traces: $0.05/GB processed + $0.40/GB written + $0.10/GB per retention increment |
| Span/allotment | 150 GB ingested spans + 1M indexed spans per APM host per month, pooled across all APM hosts | No span unit — a span is a GB of trace data |
| Logs | $0.10/GB ingested, flat; indexing $1.06–$2.50 per 1M events by retention tier (3/7/15/30-day, annual) | $0.05/GB processed + $0.40/GB written + $0.10/GB retained (per 30-day increment beyond the 30-day minimum); query billed above 100× written volume |
| Infra/k8s | Host, per month, high-water mark | $0.0100/host-hour ($7.20/host/mo) + $0.00070/container-hour ($0.50/container/mo) |
| Cardinality dial | Custom metrics: 100/host (Pro), 200 (Enterprise) included, then $5 per 100 | DPM: included 1 DPM/series (60s scrape); a 15s scrape is 4 DPM/series and usage follows total DPM |
| Free tier | 5 hosts, 1-day metric retention | 10k active series/mo, 50 GB ingested/mo, 2,232 host-hours + 37,944 container-hours, 14-day retention |
| Platform fee | none | $19/mo (Pro), includes the free-tier allowances |
| Billing cycle effect | On-demand rates run up to ~50% above annual on indexed lines ($2.50 → $3.75 per 1M, 30-day) | Volume discounts applied by the calculator; the published figure is the entry rate |
Two things in that table are not in any vendor marketing. First, the free tiers are different species: Datadog’s is five hosts with one day of metric retention, which is a trial; Grafana’s is fourteen days of retention on a real (if small) footprint. Free tier for a weekend, billing for a decade — both of them, in practice. Second, the two “dials” that grow bills are not the same dial: Datadog’s is cardinality as custom-metric count and index volume, Grafana’s is cardinality as active-series count multiplied by scrape resolution. Same word, different meter.
The units, reconciled
Before the bill, the units, because comparing “per host” against “per series” without a definition is comparing a gallon to a mile.
A host. Datadog counts a unique OS instance per hour, 8 of them, and bills the high-water mark of the lower 99% of the month — a stable fleet bills 8. It does not matter what the host does. Grafana does not sell a host at all; it sells host-hours under Kubernetes monitoring, at $0.01 each, which is a different economic object: a host that sits idle for a week still burns its hours on Grafana, but the price is 1/15th of Datadog’s per-host rate per hour.
A span. On Datadog a span has two prices and two identities: ingested (a gigabyte, $0.10, you are charged for receiving it) and indexed (a count, $1.27–$2.50 per million by retention tier, you are charged for keeping it searchable). The 15-day tier is $1.70 per million, the rate I use in the bill. The included allotment is 150 GB ingested plus 1 million indexed per APM host per month, and the vendor’s own note says the indexed allotment is pooled across all APM hosts — 8 APM hosts does not mean 8 million spans, it means 1 million shared. On Grafana a span is not counted at all; it is a kilogram. Ten million spans at roughly 1 KB each is 10 GB of traces, priced at $0.05 processed plus $0.40 written per GB.
A gigabyte of logs. Datadog: $0.10 to ingest, full stop; then a second decision — index a fraction of it (per million events, tiered by retention), or keep the rest in Flex Logs storage at $0.05 per million stored events, the cheap tier on the same pricing list. Grafana: $0.05 to process the GB you send, $0.40 to write the GB that survives its Adaptive Telemetry filtering, $0.10 per GB for each additional 30-day retention increment beyond the 30-day minimum, and query volume billed only above a fair-use ratio of 100× your written volume. The docs’ own definition of the split: processed is what arrives, written is what is stored after optimization, and dropping data with Adaptive Telemetry reduces written volume but not processed volume.
A series. Grafana-only, and the meter to understand. The vendor’s documented example: 50,000 active series at a 60-second scrape (1 DPM) bills as 50,000; the same 50,000 series at a 30-second scrape (2 DPM) bills as 100,000. Halving the interval doubles the bill for the same services, the same traffic. Datadog’s nearest equivalent is the custom metric — a unique name-plus-host-plus-tags combination — with 100–200 included per host and $5 per 100 overage. Both vendors sell you a cardinality problem and call it a feature.
| Unit | Datadog (28 Sep 2026) | Grafana Cloud (28 Sep 2026) | What moves it |
|---|---|---|---|
| Host | $15/mo (Pro, annual) | $0.01/host-hour (k8s) | Fleet size; autoscaling spikes |
| Span | $0.10/GB ingested; $1.70/M indexed (15-day) | $0.45/GB (10M spans ≈ 10 GB, 10% kept) | Trace volume; retention tier; index rate |
| Log GB | $0.10/GB + index events by tier | $0.05 processed + $0.40 written per GB | Log volume; drop rate; retention increments |
| Series | (custom metric: $5/100 over allotment) | $6.50 per 1,000 billable (entry) | Active series count × scrape interval |

The workload, stated
A named ten-service stack, the kind a five-person platform team actually runs. Every number below is a stated assumption — a modeled workload, not a benchmark of a real customer, and the bill that follows is a stated estimate built from the published rates.
| Dimension | Value | Assumption |
|---|---|---|
| Services | 10: api-gateway, auth, billing, notifications, search, web, mobile-bff, reports, worker-queue, cron-batch | One product, ten deployables |
| Hosts / containers | 8 hosts (2 AZs), 120 containers (12/host) | Mid-size Kubernetes fleet |
| Requests | 108M/month across the stack (3,600/min average) | Steady state, 30-day month |
| Metric series | 250,000 active; 90% scraped at 60s (1 DPM), 10% at 15s (4 DPM) → 325,000 DPM | Prometheus defaults + tighter interval on the hot services |
| Spans | 100M ingested/month (~100 GB at ~1 KB/span); 10% indexed (10M) | Standard APM instrumentation, 10% sampling for index |
| Logs | 900 GB/month (30 GB/day); 2B events; 15% indexed (300M), remainder stored | INFO-level logging across ten services |
| Retention | Metrics: 13 months (Grafana Pro) / 15-month default (Datadog); logs: 30 days (Grafana minimum) vs 15-day index + 15-month Flex storage (Datadog); traces: 30 days vs 15-day index | The vendor defaults on each side |
| Billing | Datadog annual-commitment rates; Grafana Pro entry rates, volume discounts unapplied | Conservative on both sides |
Benchmarks are marketing until you run them on your own data. This table is the template; swap in your service count, series, and GB, and the two bills below re-render.
The monthly bill, counted
Datadog (Pro-tier annual rates, 28 September 2026):
| Line | Calculation | Monthly |
|---|---|---|
| Infrastructure | 8 hosts × $15 | $120.00 |
| APM hosts | 8 × $31 | $248.00 |
| Indexed spans overage | (10M − 1M pooled) × $1.70/M (15-day) | $15.30 |
| Log ingestion | 900 GB × $0.10 | $90.00 |
| Indexed log events | 300M × $1.70/M (15-day) | $510.00 |
| Flex Logs storage | 1,700M stored events × $0.05/M | $85.00 |
| Total | $1,068.30 |
Excluded, and named: per-user seats, synthetics ($5 per 10k API test runs, $12 per 1,000 browser), cloud cost management ($5 per $1,000 of cloud spend), security and RUM meters. They are on the same pricing list; they are not on this workload’s bill because the workload does not buy them yet.
Grafana Cloud (Pro, entry rates, 28 September 2026):
| Line | Calculation | Monthly |
|---|---|---|
| Platform fee | Pro | $19.00 |
| Metrics | usage = max(250,000 series, 325,000 DPM) = 325,000; less 10,000 included → 315,000 × $6.50/1k | $2,047.50 |
| Traces | 100 GB × $0.05 processed + 10 GB × $0.40 written (30-day minimum retention included) | $9.00 |
| Logs | 900 GB × $0.05 processed + 450 GB × $0.40 written (50% written after Adaptive Telemetry) | $225.00 |
| Kubernetes | (5,760 − 2,232) host-hours × $0.01 + (86,400 − 37,944) container-hours × $0.0007 | $69.20 |
| Total | $2,369.70 |
What the two tables actually say. The same telemetry, priced by two different units, produces a 2.2× gap at this shape of stack — and the gap is decided by one line on each side. Datadog’s bill is log-indexing-led: $510 of the $1,068.30 is the indexed-events line, the meter that scales with what you choose to keep searchable. Grafana’s bill is series-led: $2,047.50 of the $2,369.70 — 86% — is the metrics line, the meter that scales with cardinality times resolution. The workload above is log-heavy and series-moderate, and that is precisely the shape where the per-host-and-GB vendor beats the per-series vendor.
Flip the shape and the verdict flips. Take the same ten services and let the cardinality grow fivefold — 1.25M active series at 60-second scrapes, same logs, same spans — and the Grafana metrics line at the entry rate becomes 1,240,000 billable × $6.50/1k = $8,060.00 a month before volume discounts, while the Datadog bill moves by the custom-metric overage alone. The per-series meter is a function of your topology, not your traffic; that is the line to understand before you sign anything.
Caveat, stated: $6.50 per 1,000 is the published entry rate. Grafana’s own pricing page says usage pricing is tiered and the effective rate drops with volume, and the interactive calculator is where the real number lives. This bill uses the entry rate on purpose, because it is the worst case the vendor publishes in type, and a bill that assumes the discount is not a bill, it is a negotiation.
What quietly doubles the bill
Retention, on the Datadog side. Indexed spans and indexed log events are tiered by retention: $1.27 (7-day), $1.70 (15-day), $2.50 (30-day) per million, annual billing. Moving this workload from 15-day to 30-day indexing costs +$7.20 on spans and +$240.00 on log events — +$247.20 total, a 23% increase in the whole bill, for one dropdown. The same 30-day line on on-demand billing is $3.75 per million instead of $2.50 — a 50% cycle-rate tax on the exact line that already dominates. Your billing cycle is a pricing decision, and most teams make it once, in year one.
The scrape interval, on the Grafana side. The vendor’s documented example is the whole story: 50,000 series at 60s bills as 50,000; at 30s it bills as 100,000. On this workload, moving the whole stack from 60s to 15s scrapes makes total DPM 1,000,000, usage 1,000,000, and the metrics line $6,435.00 at the entry rate — a 3.1× increase in one line from a scrape-interval file. Even a partial move — the 15s cohort (10% of series) tightened to 8s — adds 100,000 billable units, $650.00 a month. Your build times are not a rounding error, and your scrape interval is not one either.

APM on all services, Datadog. Every service that starts sending traces makes its host an APM host at $31 (annual). The pooled indexed-span allotment does not grow with the host count — 10 traced hosts and 20 traced hosts share the same per-host allotment structure, and indexed overage scales with span volume, not with your appetite. Instrument the four uninstrumented services on this stack and the APM line rises $124.00 before a single extra span is indexed.
The index rate and the drop rate, both sides. On Datadog, raising the log index rate from 15% to 50% moves the indexed line from $510.00 to $1,700.00 (+$1,190.00) — the single largest lever on that bill, and it is a policy setting. On Grafana, the mirror image is the Adaptive Telemetry drop rate: it moves written GB, the $0.40 dimension, without touching processed GB, the $0.05 dimension. And there is a fourth meter most dashboards never show: query volume above 100× written logs, billed as its own line when you finally reach it. The alert is not the line item. The telemetry the alert queries is.
The self-hosted Grafana escape hatch
The escape hatch is the open-source stack — Mimir for metrics, Loki for logs, Tempo for traces, Grafana in front — on your own hosts. On this workload it is real arithmetic, not sentiment: a couple of dedicated 16 vCPU nodes for the observability stack plus storage is a few hundred dollars a month of cloud compute (stated assumption: $300–400), against a $2,369.70 Grafana Cloud bill or a $1,068.30 Datadog bill.
What it adds is the same shape as the self-hosted runner math in the CI/CD comparison: upgrades, storage sizing, and on-call for the thing that watches everything else. Stated, not romanticized: budget two to four engineer-hours a week (an assumption, the kind of number you learn from your own on-call log, not from a vendor page), and the crossover is your amortized infrastructure plus ops below the vendor’s per-unit rate — which, at this workload’s bill, is a wide margin. The exit cost is the mirror image: you own the data formats (PromQL, OTLP, Loki query syntax are all open), so leaving is a migration, not a buyout. The boring stack is a feature. For a team of five, the honest framing is that self-hosting trades a $1,000–2,400 monthly meter for a recurring ops commitment — the bill does not disappear, it changes employer.
The dated watchlist
Three line items to re-check before the next billing cycle, each with the date it was last true:
- Datadog’s per-host infrastructure rate. The vendor’s own pricing list page shows $15/host/month (Pro, annual) as of 28 September 2026. A third-party tracker (PricePulse, 5 August 2026) reported a 2026 increase to $23/host (+40%), APM from $31 to $40, and log ingestion from $0.10 to $0.12/GB — the vendor’s published list had not reflected it as of this article’s fetch date. Both dates, both figures, in force on different pages: confirm which one your renewal actually carries. This is the pricing page arguing with the tracker, and the changelog is where the product actually is.
- Grafana Cloud’s repricing, in flight. The pricing page itself carried the banner “Send more, charge more is broken. We are changing it.” as of 28 September 2026 — the vendor acknowledging the model is mid-change, on the page that quotes the rate. The plan line already moved: the former $299/month Advanced tier is gone from the page, replaced by Pro at a $19 platform fee plus usage from $6.50 per 1,000 series. Re-render the metrics line at the next plan change; the entry rate in this bill is the one you can verify today.
- The retention tiers and the billing cycle, Datadog. The 30-day indexed rate ($2.50/M) against the 15-day ($1.70/M) is a 47% lever on the line that dominates that bill, and the on-demand rate ($3.75/M) is the most expensive version of it. If the bill looks wrong, the first three cells to check are retention, cycle, and index rate — in that order.
Re-run the whole table quarterly: both vendors’ fine print is on a vendor release cycle, and the workload-shaped bill is the only number that re-renders itself.
If I were picking for a team of five
Running exactly this stack — 8 hosts, 120 containers, 250,000 series, 100M spans, 900 GB of logs — I would start on Datadog at Pro annual rates. $1,068.30 against $2,369.70, and the line that dominates the Datadog bill is the one the team controls (the index rate), not the one it cannot (cardinality times resolution). I would keep Grafana Cloud honest against its own calculator: the $6.50-per-1,000 entry rate is the worst case it publishes in type, and the volume discount is a number to get in writing before the first invoice, not after. I would leave the scrape interval at 60s wherever the data allows, because on Grafana the interval is a price input, and I would re-run this table at every renewal — because on 28 September 2026, one vendor’s pricing page was still disagreeing with a third-party tracker’s table, and the other was disagreeing with itself, in a banner on the pricing page. The changelog is where the product actually is.