Features Pricing Docs Blog

Log volume & cost calculator

How many gigabytes do your logs come to, what does a per-GB vendor charge for them, and how much disk would the same data take on your own server? Change any number and the answer follows.

Average across the day, not the peak.

Uncompressed, as sent — a JSON log line is often 300–1,000.

How long a line stays searchable.

The per-GB part of the bill.

The per-event part, for the retention above.

Columnar storage of logs: commonly 5–15×. Measure yours.

Events a day
17.3 million
Events a month
518.4 million
Ingested a day
8.64 GB
Ingested a month
259.2 GB

Per-GB SaaS bill

$907 / month

$10,886 a year

  • Ingest — 259.2 GB × $0.10 $25.92
  • Indexing — 518.4 million events × $1.70/M $881

Self-hosted, the same 15 days

13.0 GB on disk

129.6 GB of raw logs held at once, compressed 10×. The bill is whatever that server costs you — it does not grow per gigabyte.

How the numbers are worked out

Events a day is events per second × 86,400. Volume is events × average size, in decimal gigabytes (109 bytes) because that is the unit vendors bill in. A month is 30 days.

The SaaS bill follows the model most log vendors use: a price per gigabyte ingested, plus a price per million events kept searchable for a retention period. The defaults are Datadog's published list price for Log Management as checked on 9 October 2026 — $0.10 per ingested GB, and $1.70 per million events indexed with 15-day retention, billed annually ($2.55 on demand). Longer retention, other tiers and negotiated discounts change it; put in your own contract's numbers.

The self-hosted figure is disk, not money: the raw volume you would hold at any one time, divided by the compression ratio. Logs compress very well in a columnar store, because a column of timestamps, severities or service names is mostly repetition. Five to fifteen times is common; the real figure depends on how varied your messages are.

How to measure your own inputs

For the rate, count a day of lines and divide by 86,400 — wc -l over a day's log file is enough. For the size, divide that file's bytes by its lines: wc -c then wc -l. If you already run ClickHouse, it will tell you the compression ratio of a table outright:

SELECT
    formatReadableSize(sum(data_uncompressed_bytes)) AS raw,
    formatReadableSize(sum(data_compressed_bytes)) AS on_disk,
    round(sum(data_uncompressed_bytes) / sum(data_compressed_bytes), 1) AS ratio
FROM system.columns
WHERE table = 'otel_logs'

Why the two answers grow differently

A per-GB bill grows in a straight line with every log line you add, which is why teams end up sampling, dropping debug logs or shortening retention to keep the invoice down. Disk grows too, but at a tenth of the rate and in steps you buy once. That difference is the reason Bilis exists: OpenTelemetry logs, traces and metrics on your own box, with no per-gigabyte line on any bill.