fast-telemetry Bench Suite Report

generated_at=2026-04-06T19:40:05 | results_dir=/Users/devon/Documents/GitHub/fast-telemetry/crates/fast-telemetry/bench/results

Cache Benchmarks

fast/otel speedup by case

counter:uniform188.37xcounter:hotspot254.06xcounter:churn145.60xdistribution:uniform117.52xdistribution:hotspot151.86xdynamic_counter:uniform1743.11xdynamic_counter:hotspot701.28xdynamic_counter:churn714.00xdynamic_distribution:uniform458.81xdynamic_distribution:hotspot354.19xdynamic_distribution:churn255.57xdynamic_gauge:uniform119.68xdynamic_gauge:hotspot353.99xdynamic_gauge:churn111.17xdynamic_gauge_i64:uniform9.03xdynamic_gauge_i64:hotspot8.41xdynamic_gauge_i64:churn6.48xdynamic_histogram:uniform102.74xdynamic_histogram:hotspot91.74xdynamic_histogram:churn50.58xlabeled_counter:uniform1353.68xlabeled_counter:hotspot1490.06xlabeled_counter:churn2364.02xlabeled_gauge:uniform118.11xlabeled_gauge:hotspot129.88xlabeled_gauge:churn65.71xlabeled_histogram:uniform47.88xlabeled_histogram:hotspot39.02xlabeled_histogram:churn53.92x

fast vs otel throughput by case (dumbbell, log scale)

Left dot = OTel, right dot = fast-telemetry (log scale).
1e61e71e81e91e10labeled_counter:churnlabeled_counter:churn | otel=3,721,890.36labeled_counter:churn | fast=8,798,611,227.202364.02xdynamic_counter:uniformdynamic_counter:uniform | otel=3,485,689.68dynamic_counter:uniform | fast=6,075,946,905.951743.11xlabeled_counter:hotspotlabeled_counter:hotspot | otel=4,063,163.57labeled_counter:hotspot | fast=6,054,338,902.521490.06xlabeled_counter:uniformlabeled_counter:uniform | otel=3,892,642.48labeled_counter:uniform | fast=5,269,395,194.631353.68xdynamic_counter:churndynamic_counter:churn | otel=3,835,149.06dynamic_counter:churn | fast=2,738,287,863.61714.00xdynamic_counter:hotspotdynamic_counter:hotspot | otel=3,456,894.06dynamic_counter:hotspot | fast=2,424,242,424.24701.28xdynamic_distribution:uniformdynamic_distribution:uniform | otel=3,232,687.95dynamic_distribution:uniform | fast=1,483,202,875.75458.81xdynamic_distribution:hotspotdynamic_distribution:hotspot | otel=4,291,505.21dynamic_distribution:hotspot | fast=1,519,997,543.68354.19xdynamic_gauge:hotspotdynamic_gauge:hotspot | otel=3,704,848.95dynamic_gauge:hotspot | fast=1,311,489,685.72353.99xdynamic_distribution:churndynamic_distribution:churn | otel=3,552,769.13dynamic_distribution:churn | fast=907,976,574.20255.57xcounter:hotspotcounter:hotspot | otel=14,588,221.03counter:hotspot | fast=3,706,335,201.70254.06xcounter:uniformcounter:uniform | otel=10,885,493.13counter:uniform | fast=2,050,476,161.57188.37xdistribution:hotspotdistribution:hotspot | otel=20,751,537.69distribution:hotspot | fast=3,151,426,682.37151.86xcounter:churncounter:churn | otel=15,649,356.34counter:churn | fast=2,278,531,313.40145.60xlabeled_gauge:hotspotlabeled_gauge:hotspot | otel=8,258,500.70labeled_gauge:hotspot | fast=1,072,616,110.69129.88xdynamic_gauge:uniformdynamic_gauge:uniform | otel=3,377,212.33dynamic_gauge:uniform | fast=404,188,067.41119.68xlabeled_gauge:uniformlabeled_gauge:uniform | otel=4,409,525.25labeled_gauge:uniform | fast=520,787,004.99118.11xdistribution:uniformdistribution:uniform | otel=20,745,770.67distribution:uniform | fast=2,438,033,121.66117.52xdynamic_gauge:churndynamic_gauge:churn | otel=4,014,185.87dynamic_gauge:churn | fast=446,248,438.47111.17xdynamic_histogram:uniformdynamic_histogram:uniform | otel=3,625,841.01dynamic_histogram:uniform | fast=372,507,681.48102.74xdynamic_histogram:hotspotdynamic_histogram:hotspot | otel=4,548,587.82dynamic_histogram:hotspot | fast=417,283,916.5191.74xlabeled_gauge:churnlabeled_gauge:churn | otel=7,702,837.37labeled_gauge:churn | fast=506,152,921.4565.71xlabeled_histogram:churnlabeled_histogram:churn | otel=4,464,335.54labeled_histogram:churn | fast=240,726,267.3053.92xdynamic_histogram:churndynamic_histogram:churn | otel=3,905,704.89dynamic_histogram:churn | fast=197,546,796.7150.58xlabeled_histogram:uniformlabeled_histogram:uniform | otel=5,758,604.34labeled_histogram:uniform | fast=275,726,107.4747.88xlabeled_histogram:hotspotlabeled_histogram:hotspot | otel=6,188,399.48labeled_histogram:hotspot | fast=241,498,743.1339.02xdynamic_gauge_i64:uniformdynamic_gauge_i64:uniform | otel=3,570,375.20dynamic_gauge_i64:uniform | fast=32,229,521.439.03xdynamic_gauge_i64:hotspotdynamic_gauge_i64:hotspot | otel=3,855,810.12dynamic_gauge_i64:hotspot | fast=32,416,473.898.41xdynamic_gauge_i64:churndynamic_gauge_i64:churn | otel=4,716,215.58dynamic_gauge_i64:churn | fast=30,543,801.916.48xotelfast-telemetrythroughput ops/sec (log10)

fast median total ops/sec by case

counter:uniform2,050,476,161.57counter:hotspot3,706,335,201.70counter:churn2,278,531,313.40distribution:uniform2,438,033,121.66distribution:hotspot3,151,426,682.37dynamic_counter:uniform6,075,946,905.95dynamic_counter:hotspot2,424,242,424.24dynamic_counter:churn2,738,287,863.61dynamic_distribution:uniform1,483,202,875.75dynamic_distribution:hotspot1,519,997,543.68dynamic_distribution:churn907,976,574.20dynamic_gauge:uniform404,188,067.41dynamic_gauge:hotspot1,311,489,685.72dynamic_gauge:churn446,248,438.47dynamic_gauge_i64:uniform32,229,521.43dynamic_gauge_i64:hotspot32,416,473.89dynamic_gauge_i64:churn30,543,801.91dynamic_histogram:uniform372,507,681.48dynamic_histogram:hotspot417,283,916.51dynamic_histogram:churn197,546,796.71labeled_counter:uniform5,269,395,194.63labeled_counter:hotspot6,054,338,902.52labeled_counter:churn8,798,611,227.20labeled_gauge:uniform520,787,004.99labeled_gauge:hotspot1,072,616,110.69labeled_gauge:churn506,152,921.45labeled_histogram:uniform275,726,107.47labeled_histogram:hotspot241,498,743.13labeled_histogram:churn240,726,267.30
caserun_dirfast_totalotel_totalatomic_totalfast/otelfast/atomic
counter:uniformcache_20260406_1938182,050,476,161.5710,885,493.1334,082,756.34188.37x60.16x
counter:hotspotcache_20260406_1938363,706,335,201.7014,588,221.0337,012,841.61254.06x100.14x
counter:churncache_20260406_1938382,278,531,313.4015,649,356.3435,477,919.40145.60x64.22x
distribution:uniformcache_20260406_1938392,438,033,121.6620,745,770.670.00117.52x0.00x
distribution:hotspotcache_20260406_1938403,151,426,682.3720,751,537.690.00151.86x0.00x
dynamic_counter:uniformcache_20260406_1938416,075,946,905.953,485,689.680.001743.11x0.00x
dynamic_counter:hotspotcache_20260406_1938452,424,242,424.243,456,894.060.00701.28x0.00x
dynamic_counter:churncache_20260406_1938482,738,287,863.613,835,149.060.00714.00x0.00x
dynamic_distribution:uniformcache_20260406_1938511,483,202,875.753,232,687.950.00458.81x0.00x
dynamic_distribution:hotspotcache_20260406_1938541,519,997,543.684,291,505.210.00354.19x0.00x
dynamic_distribution:churncache_20260406_193857907,976,574.203,552,769.130.00255.57x0.00x
dynamic_gauge:uniformcache_20260406_193900404,188,067.413,377,212.330.00119.68x0.00x
dynamic_gauge:hotspotcache_20260406_1939041,311,489,685.723,704,848.950.00353.99x0.00x
dynamic_gauge:churncache_20260406_193907446,248,438.474,014,185.870.00111.17x0.00x
dynamic_gauge_i64:uniformcache_20260406_19391032,229,521.433,570,375.200.009.03x0.00x
dynamic_gauge_i64:hotspotcache_20260406_19391332,416,473.893,855,810.120.008.41x0.00x
dynamic_gauge_i64:churncache_20260406_19391630,543,801.914,716,215.580.006.48x0.00x
dynamic_histogram:uniformcache_20260406_193919372,507,681.483,625,841.010.00102.74x0.00x
dynamic_histogram:hotspotcache_20260406_193922417,283,916.514,548,587.820.0091.74x0.00x
dynamic_histogram:churncache_20260406_193925197,546,796.713,905,704.890.0050.58x0.00x
labeled_counter:uniformcache_20260406_1939285,269,395,194.633,892,642.480.001353.68x0.00x
labeled_counter:hotspotcache_20260406_1939316,054,338,902.524,063,163.570.001490.06x0.00x
labeled_counter:churncache_20260406_1939348,798,611,227.203,721,890.360.002364.02x0.00x
labeled_gauge:uniformcache_20260406_193937520,787,004.994,409,525.250.00118.11x0.00x
labeled_gauge:hotspotcache_20260406_1939391,072,616,110.698,258,500.700.00129.88x0.00x
labeled_gauge:churncache_20260406_193942506,152,921.457,702,837.370.0065.71x0.00x
labeled_histogram:uniformcache_20260406_193944275,726,107.475,758,604.340.0047.88x0.00x
labeled_histogram:hotspotcache_20260406_193947241,498,743.136,188,399.480.0039.02x0.00x
labeled_histogram:churncache_20260406_193950240,726,267.304,464,335.540.0053.92x0.00x

Span Benchmarks

fast/otel speedup by scenario

lifecycle139.90xpipeline324.43xroot253.13x

fast vs otel throughput by scenario (dumbbell, log scale)

Left dot = OTel, right dot = fast-telemetry (log scale).
1e51e61e71e81e9pipelinepipeline | otel=183,054.74pipeline | fast=59,388,005.42324.43xrootroot | otel=1,056,077.91root | fast=267,326,070.98253.13xlifecyclelifecycle | otel=337,386.19lifecycle | fast=47,199,959.18139.90xotelfast-telemetrythroughput ops/sec (log10)

fast median total ops/sec by scenario

lifecycle47,199,959.18pipeline59,388,005.42root267,326,070.98
scenariorun_dirfast_totalotel_totalfast/otel
lifecyclespan_lifecycle_20260406_19395647,199,959.18337,386.19139.90x
pipelinespan_pipeline_20260406_19395959,388,005.42183,054.74324.43x
rootspan_root_20260406_193953267,326,070.981,056,077.91253.13x