observabilitycost-optimizationengineeringfinops

Error tracking cost: when one noisy exception eats your whole quota

Error tracking platforms bill per event, and a single bad deploy can emit millions in an hour. Grouping, sampling, and rate limits are the difference between a $200 bill and a $9,000 one.

The C3X Team··7 min read

Quick answer

Error tracking platforms bill per captured event, typically $0.0002 to $0.001 per error beyond an included quota. A retry loop hitting a failing dependency can emit 3 million errors in an hour, which at $0.0005 each is $1,500 from one incident. The controls that matter are client-side rate limiting (cap events per process per minute), sampling by fingerprint (keep 100 of a repeating error, not 100,000), and server-side inbound filters. Dedupe at the source, because platforms bill on received events, not on grouped issues.

Error tracking has an unusual cost profile: it is cheap almost all the time and catastrophically expensive for a few hours at a time. The bill correlates with incidents rather than with traffic, which means the month you had a bad deploy is the month your observability spend spikes, right when nobody has attention to spare for cost.

How error platforms bill

Billing unitTypical priceNote
Error event$0.0002 to $0.001Per event received, not per unique issue
Performance transaction$0.00003 to $0.0002Often a separate quota
Session replay$0.003 to $0.03The expensive one
Attachment / minidump storagePer GBCrash dumps add up fast
Seats$26 to $80 per user-monthOn some plans

The key phrase is "per event received". Platforms group similar errors into issues for your convenience, but grouping happens after ingestion and after billing. Ten thousand instances of the same null pointer exception show as one issue in the UI and ten thousand events on the invoice.

The incident math

Take a service handling 2,000 requests per second. A dependency starts failing and every request throws. With a client library capturing every exception, you emit 2,000 events per second, 7.2 million per hour. At $0.0005 per event that is $3,600 for one hour of a failing dependency.

Retry logic makes it worse. A three-attempt retry with exponential backoff triples the error count and extends it beyond the incident window. Background job frameworks that retry failed jobs indefinitely can emit errors long after the underlying issue resolved. A job queue with 50,000 stuck messages retrying every 30 seconds produces 100,000 errors per minute indefinitely, which nobody notices because it does not page.

ScenarioEventsCost at $0.0005
1 hour dependency outage, no limits7.2M$3,600
Same, with 10 events/min/process cap~12,000$6
Stuck queue retrying for 3 days432M$216,000
Same, with fingerprint sampling at 0.1%432,000$216

The three controls

Client-side rate limiting is the most important and the least used. Every mature error SDK supports a cap on events per time window per process. Set it to something like 20 events per minute per process. During normal operation you never hit it; during an incident it caps your exposure at a few hundred dollars instead of a few thousand. The tenth thousand instance of an exception tells you nothing the tenth did not.

Fingerprint-based sampling is second. Compute a fingerprint from the exception type and stack trace, keep the first N occurrences at full fidelity, then sample subsequent occurrences at 0.1% while maintaining an accurate local count you attach as an attribute. You get the exact frequency and a handful of full examples, which is all anyone uses.

Server-side inbound filters are third and cover what the clients miss. Every platform supports dropping events matching patterns before they count against quota: browser extension errors, bot traffic, known third-party script failures, and errors from unsupported browser versions. On a consumer web application, browser noise routinely accounts for 30% to 60% of received events and essentially none of the actionable ones.

Session replay deserves its own policy

At $0.003 to $0.03 per replay, session replay is 10x to 60x the price of an error event and it is easy to enable broadly. Recording 100% of sessions on a site with 3 million monthly sessions at $0.01 each is $30,000 per month. Recording only sessions in which an error occurred, typically 1% to 3% of sessions, brings that to $300 to $900 while capturing the replays anyone actually watches. Set replay sampling to error-triggered by default and raise it deliberately for a specific investigation.

Reducing the error rate itself

The cheapest error event is the one not thrown. Expected conditions should not be exceptions: a 404 on a deleted resource, a validation failure on user input, a rate limit response from a third party. These frequently make up the majority of captured events and represent normal operation. Filter them by type in the client rather than sending them and grouping them away in the UI.

Also check what your framework captures by default. Many web frameworks report every 4xx response as an error, which means a crawler probing for admin paths generates thousands of billable events per day. Restrict default capture to 5xx and unhandled exceptions.

Budget alarms, not surprises

Because error cost spikes with incidents rather than accumulating steadily, a monthly budget alert fires too late. Set a rate-based alert: notify when error events exceed, say, 5x the 7-day trailing average for more than 10 minutes. That catches the runaway before it runs for three days, and it doubles as a useful reliability signal. Pair this with the broader observability cost controls, and price the supporting infrastructure from Terraform against the resource catalog so the whole telemetry estate carries a number.

FAQ

How do error tracking platforms bill?

Per event received, typically $0.0002 to $0.001 each beyond an included quota, with separate quotas for performance transactions and session replay. Grouping into issues happens after ingestion and after billing, so ten thousand instances of the same exception display as one issue in the UI and ten thousand billable events on the invoice. Session replay at $0.003 to $0.03 per session is the most expensive unit.

How much can one incident cost in error tracking?

A service handling 2,000 requests per second where every request throws emits 7.2 million events per hour, roughly $3,600 at $0.0005 per event. Worse, a stuck job queue with 50,000 messages retrying every 30 seconds produces 100,000 errors per minute indefinitely, reaching 432 million events and $216,000 over three days, without ever paging anyone because the system looks nominally healthy.

What controls limit error tracking cost?

Three. Client-side rate limiting caps events per process per time window, typically 20 per minute, which caps incident exposure at hundreds rather than thousands of dollars. Fingerprint-based sampling keeps the first N occurrences at full fidelity then samples the rest at 0.1% with an accurate local count attached. And server-side inbound filters drop browser extension errors, bot traffic, and third-party script failures before they count.

How should session replay be sampled?

Error-triggered only, by default. Recording 100% of sessions on a site with 3 million monthly sessions at $0.01 each costs $30,000 per month. Recording only sessions where an error occurred, typically 1% to 3%, brings that to $300 to $900 while capturing the replays anyone actually watches. Raise the rate deliberately and temporarily for a specific investigation rather than leaving it high.

Which errors should never be sent at all?

Expected conditions: 404s on deleted resources, validation failures on user input, and rate limit responses from third parties. These frequently make up the majority of captured events and represent normal operation. Check your framework's defaults too, since many report every 4xx as an error, meaning a crawler probing for admin paths generates thousands of billable events per day. Restrict capture to 5xx and unhandled exceptions.

How should I alert on error tracking cost?

With a rate-based alert rather than a monthly budget, because error cost spikes with incidents rather than accumulating steadily and a monthly threshold fires too late. Notify when error event volume exceeds roughly 5x the 7-day trailing average for more than 10 minutes. That catches a runaway retry loop within minutes instead of days, and doubles as a useful reliability signal in its own right.

What to do next

Keep the whole telemetry estate priced. C3X reads your Terraform and prices observability infrastructure against a live catalog. Start with the quickstart.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.