Cloudflare observability pricing moves to a per-GB model on 1 December 2026: $0.25 per GB ingested and $0.10 per GB-month stored past the included amounts, on one meter for Workers logs, Containers, AI Gateway logs and tracing data. Existing Free, Pro and Business customers switch automatically on that date. Enterprise accounts switch when their contract renews. Whether your bill goes up or down, Cloudflare's announcement doesn't say: it gives no old-versus-new comparison. The docs do give you enough to work out your own number.
It belongs with the other dated changes in Platform and language release notes: what breaks and what to fix. Unlike most of them, this one lands on the invoice, not the build.
What Cloudflare changed, and when
One model for logs and traces
The pricing page says "Beginning December 1, 2026, all Cloudflare logs and traces will use the same pricing model." The Cloudflare Observability pricing docs say it covers Workers Logs and Traces, Containers logs, AI Gateway logs and other Cloudflare logs and traces, including R2 Data Access Logs. Workers Logs, which today bills on events, is in scope: the Workers Logs documentation says "Beginning December 1, 2026, Workers Logs will use Cloudflare Observability pricing." Traces, still in beta, follow the same rule: stored traces start counting toward account-level ingestion and storage usage on that date, according to the Workers traces documentation.
Who moves when
The pricing docs say existing Workers Observability customers on "Free, Pro, and Business plans automatically move to this pricing on December 1, 2026." Ingestion charges apply only to data received on or after that date, so November's data doesn't get retroactively billed under the new model.
Enterprise is different. The pricing docs say Enterprise accounts move "when their contract renews. Until then, existing contract terms apply." There's no single Enterprise date. Yours is whenever your renewal falls.
The new rates
Observability (logs and traces), per the announcement and the pricing docs:
| Plan | Included | Retention | Overage |
|---|---|---|---|
| Free | 0.5 GB of ingestion per day | 7 days | Not available |
| Paid | 50 GB ingestion per billing cycle, plus included storage (see below) | Up to 1 year (coming) | $0.25 per GB ingested, $0.10 per GB-month stored |
| Unsampled security datasets | None stated | 30 days | $1 per GB ingested |
The pricing docs label the columns Free and Paid; the announcement labels them Free and Paid/Enterprise. The security datasets row comes from the pricing docs: "Unsampled security datasets have a different price point of $1 per GB ingested and include 30-day retention." Paid retention of up to one year is marked as coming in the announcement. It's not available yet, so don't plan around it.
The included storage figure is where the sources disagree. The announcement says 10 GB-month per billing cycle. The pricing docs say 12 GB-month. Both pages are Cloudflare's, and neither explains the gap. Treat the allowance as unconfirmed until one page changes, and ask your account team if the difference moves your forecast.
Logpush and Logpush Transformers are priced separately, per the announcement and the Logpush pricing docs:
| Component | Included (per Cloudflare account) | Rate |
|---|---|---|
| Logpush to Cloudflare destinations | 25 GB | $0.03 per GB |
| Logpush to external destinations | 25 GB | $0.10 per GB |
| Logpush Transformers | 1 GB | $0.04 per GB |
For comparison, here's what the observability model replaces on Workers Logs. Until 30 November, the Workers Logs docs list the Free plan at 200,000 per day with 3 days of retention. The Paid plan includes 20 million per month, then "+$0.60 per additional million," with 7 days of retention. Everything above is per event. Everything in the new tables is per GB.
How usage is counted
The two meters count different things, and the docs say so plainly.
For observability, "Ingestion includes the event body, the default enriched attributes, and custom attributes. Ingestion is pre-compression and does not include dropped events." Storage is "GB-month = sum of each day's maximum queryable GB / 30." So a day where you briefly hold a lot of queryable data counts at that day's maximum, not its average.
For Logpush, usage is "uncompressed bytes successfully delivered." Transformers bill on "uncompressed input bytes processed by Transformers." Each component is computed separately: "Billable usage equals measured monthly usage minus that component's included usage, with a minimum of zero."
Observability counts pre-compression ingested bytes, while Logpush counts uncompressed bytes delivered. Both are described as uncompressed or pre-compression, but they're defined on different pages for different products. Don't assume one number from your dashboard feeds both.
Sampling and dropped events matter here. Dropped events aren't ingested, per the pricing docs. For traces, the docs say "Sampling reduces the number of spans ingested and stored, which reduces billable usage."
Logpush is now pay-as-you-go on every plan
Logpush used to be Enterprise-only. Cloudflare's Enterprise-for-all update, published the same day as the pricing announcement, makes it available as "self-service, pay-as-you-go pricing" on Free, Pro and Business, and says Transformers is becoming generally available to all customers. The post also says "today we are committed to introducing no new Enterprise-only features."
A few exceptions to keep straight:
- Existing Enterprise contracts "retain their current Logpush pricing through renewal." Contract-specific pricing is a conversation with your account team.
- Workers Trace Events keep their own pricing: 10 million requests per month, then $0.05 per additional million requests.
- OpenTelemetry destinations use event-based pricing, not the per-GB rates above.
For the "where should logs land" question, the rate gap is the point. Sending logs to an external destination costs $0.10 per GB past the allowance, against $0.03 to a Cloudflare destination. That's 3.33 times the rate ($0.10 divided by $0.03). The included 25 GB is the same either way.
The Logpush docs add two limits that matter for planning: currently 4 Logpush jobs per zone, and no backfill of historical data. If you turn Logpush on after an incident starts, you won't get the earlier logs.
Worked example (illustration)
Illustration, not a quote. The volumes are invented for the example, and only the prices come from Cloudflare.
Say a Paid account ingests 200 GB per month. Ingestion past the 50 GB included is 150 GB at $0.25:
(200 - 50) x $0.25 = $37.50 per month
Storage is left out on purpose. The stored-GB figure depends on retention and daily peaks, and the included amount is the 10 versus 12 GB-month conflict above.
Now say the same account exports 300 GB per month through Logpush. To a Cloudflare destination:
(300 - 25) x $0.03 = $8.25 per month
To an external destination:
(300 - 25) x $0.10 = $27.50 per month
The gap is $19.25 per month on this volume, and it scales linearly with every extra GB.
For the old model, the Workers Logs docs give two examples of their own. With 15 million monthly requests, 2 logs each and 100% sampling, the doc's figure is $6.00 per month. With 1 billion monthly requests, 2 logs each and 10% sampling, it's $108.00 per month. Converting those into gigabytes would need an average event size, and none is published. So there's no honest way to say what those workloads cost after 1 December.
What this means for your observability budget
The decision is a forecast, and the deadline depends on your plan: 1 December for Free, Pro and Business, your renewal date for Enterprise. Check your contract date now, because Enterprise Logpush pricing and observability pricing both stay on current terms until then.
Judgment, not Cloudflare's guidance: measure last month's ingested GB and exported GB before you do anything else. The old Workers Logs meter counted events, and the new ones count bytes, so your current invoice can't be scaled into a forecast. You need the byte volumes.
Then decide where logs land. If a SIEM or a Datadog-type tool is the destination, the external rate of $0.10 per GB is part of that tool's true cost. Price it against sending to a Cloudflare destination at $0.03 before you commit at renewal, and put the 10 versus 12 GB-month question to your account team in writing. For the wider habit of tracking a cloud bill alongside the work behind it, see the cloud bill and the labor behind it.
Other platform changes with hard dates are on the same calendar, for example the macos-14 runner retirement on 2 November. Put them in one list so none surprises you.
FAQ
Is this a price increase?
Cloudflare's announcement gives no old-versus-new comparison, so it isn't possible to say. The old Workers Logs meter was per event and the new meters are per GB. Without a published event size, the two can't be converted. Compare using your own measured volumes.
When does it start for Enterprise?
At contract renewal. The pricing docs say "Enterprise accounts move to this pricing when their contract renews. Until then, existing contract terms apply." Existing Enterprise contracts also keep their current Logpush pricing through renewal.
Does Logpush cost more to external destinations?
Yes. Past the 25 GB included per Cloudflare account, external destinations are $0.10 per GB and Cloudflare destinations are $0.03 per GB. Usage is measured in uncompressed bytes successfully delivered.
Do sampling and dropped events reduce the bill?
Both do, per the docs. Dropped events aren't counted as ingested. For traces, sampling reduces the spans ingested and stored, which reduces billable usage.
What happens to Workers Logs billing?
Until 30 November, the event-based model applies: $0.60 per additional million past 20 million included on Paid. From 1 December 2026, Workers Logs uses Cloudflare Observability pricing.
What does the Free plan get?
0.5 GB of ingestion per day and 7 days of retention, with additional usage not available. There's no overage rate on Free.
