Theodolite
A theodolite is a precision optical instrument for measuring angles between designated visible points in the horizontal and vertical planes. -- Wikipedia
Theodolite is a framework for benchmarking the horizontal and vertical scalability of cloud-native applications.
Quickstart
Theodolite runs scalability benchmarks in Kubernetes. Follow our quickstart guide to get started.
Documentation
Documentation on Theodolite itself as well as regarding its benchmarking method can be found on the Theodolite website.
Project Structure
- Core of Theodolite is its Kubernetes Operator, implemented in Kotlin. The source-code can be found in
theodolite
. - Theodolite's Helm chart and templates are maintained in
helm
. - We provide Juptyer notebooks for analyzing and visualizing the results of benchmark executions in
analysis
. - Theodolite comes with 4 application benchmarks, which are based on typical use cases for stream processing within microservices. Implementations of these benchmarks with several state-of-the art stream processing frameworks as well as corresponding load generators can be found in
theodolite-benchmarks
. This includes both the source code of the implementations as well as benchmark definitions for Theodolite intheodolite-benchmarks/definitions
. - The source code of Theodolite's SLO checkers are located in
slo-checker
. - The documentation, which is hosted on theodolite.rocks, is located in
docs
.
How to Cite
If you use Theodolite, please cite
Sören Henning and Wilhelm Hasselbring. (2021). Theodolite: Scalability Benchmarking of Distributed Stream Processing Engines in Microservice Architectures. Big Data Research, Volume 25. DOI: 10.1016/j.bdr.2021.100209. arXiv:2009.00304.