Performance
On a Hetzner Cloud ccx33 (8 dedicated vCPUs, 32 GB RAM), with telemetrygen on a separate ccx33 over a private network, Pitot v2026.11.0-alpha accepted 507,311 mixed OpenTelemetry items/s over 306.8 seconds. The composition was 61,571 spans, 224,112 log records and 221,628 metric points per second. The run measured ingest only. Reads under sustained ingest did not meet the read target and are tracked in issue #419.
Setup and measurement
Section titled “Setup and measurement”Both hosts were described as Hetzner Cloud ccx33, fsn1, ubuntu-24.04. The Pitot host reported AMD EPYC-Milan Processor, 8 logical CPUs and 32,857,186,304 bytes of memory. telemetrygen v0.157.0 sent plaintext OTLP/gRPC over the private network, using 1,000-item batches and 8 workers per process.
The publish preset ran 1, 2, 4, 8, 16, 32 and 64 processes per signal
for traces, logs, metrics and mixed ingest, with 3 repetitions per point.
Accepted throughput is the change
in Pitot’s pitot_ingest_rows_total counter over the measured scrape window.
The suite accepted 667.3 million items in total: 145,879,781 spans, 265,470,588 log records and 255,924,526 metric points.
Measured mixed ingest
Section titled “Measured mixed ingest”The sustained phase ran for 306.8 seconds at 64 processes per signal. Pitot averaged 7.73 CPU cores and reached 10.6 GiB peak RSS. The generator host averaged 7.93 of 8 CPU cores. The sustained phase is classified generator-limited.
| Signal | Accepted items/s |
|---|---|
| Spans | 61,571 |
| Log records | 224,112 |
| Metric points | 221,628 |
| Mixed total | 507,311 |
telemetrygen keeps one trace export in flight per process, while log and metric processes keep eight. Synthetic, highly compressible telemetrygen payloads measure ingest capacity on this hardware.
Median peaks
Section titled “Median peaks”Each peak is the highest median accepted rate in that workload’s recorded sweep. Ranges cover the three repetitions at the listed process count. CPU columns are median average cores at that count; each host has 8 cores.
| Workload | Median peak items/s | Processes per signal | Range items/s | Pitot CPU cores | Generator CPU cores | Repetitions |
|---|---|---|---|---|---|---|
| Mixed | 460,640 | 64 | 453,181–485,193 | 7.22 | 7.39 | 3 |
| Traces | 297,345 | 64 | 192,120–330,450 | 6.97 | 7.24 | 3 |
| Logs | 622,229 | 64 | 558,932–648,672 | 6.02 | 6.38 | 3 |
| Metrics | 488,431 | 64 | 486,759–532,625 | 6.35 | 4.71 | 3 |
Mixed sweep
Section titled “Mixed sweep”All rates below are accepted items/s across three repetitions per mixed process count. CPU columns are median average cores per host.
| Processes per signal | Median items/s | Min items/s | Max items/s | Pitot CPU cores | Generator CPU cores |
|---|---|---|---|---|---|
| 1 | 38,820 | 38,640 | 39,227 | 5.47 | 0.82 |
| 2 | 76,587 | 76,483 | 76,741 | 6.15 | 1.71 |
| 4 | 155,156 | 149,499 | 155,707 | 5.91 | 2.16 |
| 8 | 262,749 | 261,501 | 270,231 | 7.01 | 2.93 |
| 16 | 380,026 | 323,029 | 429,748 | 7.33 | 5.00 |
| 32 | 442,361 | 432,734 | 450,588 | 7.37 | 7.14 |
| 64 | 460,640 | 453,181 | 485,193 | 7.22 | 7.39 |
Signal sweeps
Section titled “Signal sweeps”The charts share a vertical scale and an evenly spaced log2 process axis. Lines and points show the median; bands show the recorded minimum and maximum. The diamond marks the sustained phase at 64 processes per signal. The shaded region marks generator CPU of at least 7 cores.
Evidence
Section titled “Evidence”The published evidence
contains report.json and samples.jsonl, produced by
Pitot Bench on 6 November 2026 at
04:15 UTC. All quality gates passed: successful generator exits, zero dropped
rows, no restarts, authoritative accepted-row counters in every phase and
verified Parquet storage.
The harness commit was
5462cbbcde9c49521c918c45f45312493aa4bb24; the harness working tree was clean.
The Pitot release artifact has SHA-256:
1e83657b9eb0ff7e7ad406bd5162642badf087c380448deebd1f88b183656ddcReproduce
Section titled “Reproduce”From the pitot-bench repository:
PITOT_BENCH_HCLOUD_SSH_KEY='<key>' scripts/hetzner.sh \ --pitot-version v2026.11.0-alpha \ --preset publish \ --repeat 3 \ --output results/publish-ingest-ccx33x2-v2026.11.0-alphaBoth VMs default to ccx33. The publishing guide documents provisioning, the private network and artifact collection.
Regenerate the website’s data from the completed run:
node site/scripts/benchmark-data.mjs report.json samples.jsonl EVIDENCE_URLUpdate authored headline figures with the report; the site build checks them against the data.