UberExplainer
Ceilometer: Uber’s Adaptive Benchmarking Framework
Summary
Ceilometer is Uber’s adaptive benchmarking framework for qualifying new server types, cloud SKUs, kernel upgrades, configuration changes, and machine-learning frameworks before production rollout. It replaces manual, fragmented testing with standardized configurations, automated cluster bring-up and service deployment, portable containerized harnesses, and reporting that includes server specifications, reference SLAs, normalization, resource utilization, cost efficiency, and reliability signals. Its distributed architecture runs synthetic and production-like workloads across dedicated machines, processes and enriches raw results, stores them in blob storage and a centralized data warehouse, and exposes them through an analytics service. The framework covers CPU and memory benchmarks, tools such as SpecCPU2017, SPECjbb2015, NetPerf, and FIO, plus stateful, stateless, batch, and ML workloads; Uber reports uses including regression detection, database validation, and canary testing of external upgrades.
Context
Before Ceilometer, benchmarking at Uber was manual, fragmented across technologies, difficult to compare, dependent on ad hoc setups, and hard to scale. Results often lacked operational context, portability was limited, and many services had no benchmarking system for evaluating infrastructure changes.
Approach / What changed
Ceilometer consolidates benchmarking under an extensible distributed platform. It standardizes configurations, automates host identification, cluster bring-up, workload deployment, result processing, normalization, storage, and analytics, while supporting synthetic and production-like tests across stateful, stateless, batch, and ML workloads. Its containerized harness also supports execution in external environments with JSON result integration.
Takeaways
Ceilometer’s reporting combines server specifications, expected SLAs from standard reference data, and normalization to support contextual A/B comparisons.
The platform processes benchmark results through validation, normalization, and enrichment before storing them in blob storage and Uber’s centralized Data Warehouse for analytics.
A containerized harness lets external vendors run Uber’s standardized synthetic benchmarks in their own environments and return performance data as JSON files.
Source and freshness
- Source
- uber.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.