https://github.com/cau-se/theodolite
Theodolite is a framework for benchmarking the horizontal and vertical scalability of cloud-native applications.
https://github.com/cau-se/theodolite
benchmarking cloud-native event-driven-microservices operators scalability stream-processing
Last synced: about 2 months ago
JSON representation
Theodolite is a framework for benchmarking the horizontal and vertical scalability of cloud-native applications.
- Host: GitHub
- URL: https://github.com/cau-se/theodolite
- Owner: cau-se
- License: apache-2.0
- Created: 2020-05-20T11:03:37.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-04-11T06:41:34.000Z (about 1 year ago)
- Last Synced: 2024-04-11T07:49:42.798Z (about 1 year ago)
- Topics: benchmarking, cloud-native, event-driven-microservices, operators, scalability, stream-processing
- Language: Java
- Homepage: https://www.theodolite.rocks
- Size: 5.33 MB
- Stars: 37
- Watchers: 8
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.cff
- Codemeta: codemeta.json
Awesome Lists containing this project
- awesome-java - Theodolite
README

# Theodolite
> A theodolite is a precision optical instrument for measuring angles between designated visible points in the horizontal and vertical planes. -- [Wikipedia](https://en.wikipedia.org/wiki/Theodolite)
Theodolite is a framework for benchmarking the horizontal and vertical scalability of cloud-native applications in Kubernetes.
## Quickstart
Theodolite runs scalability benchmarks in Kubernetes. Follow our [quickstart guide](https://www.theodolite.rocks/quickstart.html) to get started.
## Documentation
Documentation on Theodolite itself as well as regarding its benchmarking method can be found on the [Theodolite website](https://www.theodolite.rocks).
## Project Structure
* Core of Theodolite is its Kubernetes Operator, implemented in Kotlin. The source-code can be found in [`theodolite`](theodolite).
* Theodolite's Helm chart and templates are maintained in [`helm`](helm).
* We provide Juptyer notebooks for analyzing and visualizing the results of benchmark executions in [`analysis`](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`](theodolite-benchmarks). This includes both the source code of the implementations as well as benchmark definitions for Theodolite in [`theodolite-benchmarks/definitions`](theodolite-benchmarks/definitions).
* The source code of Theodolite's SLO checkers are located in [`slo-checker`](slo-checker).
* The documentation, which is hosted on [theodolite.rocks](https://www.theodolite.rocks), is located in [`docs`](docs).## Contributing
We are happy to accept any kind of contributions to Theodolite.
This includes reporting any issues you find using Theodolite, bug fixes and improvements as well as integrating your research within the project.See our website to [start contributing](https://www.theodolite.rocks/development/).
## How to Cite
If you use Theodolite, please cite
> Sören Henning and Wilhelm Hasselbring. “A Configurable Method for Benchmarking Scalability of Cloud-Native Applications”. In: *Empirical Software Engineering* 27. 2022. DOI: [10.1007/s10664-022-10162-1](https://doi.org/10.1007/s10664-022-10162-1).
When referring to our stream processing benchmarks, please cite
> Sören Henning and Wilhelm Hasselbring. “Theodolite: Scalability Benchmarking of Distributed Stream Processing Engines in Microservice Architectures”. In: *Big Data Research* 25. 2021. DOI: [10.1016/j.bdr.2021.100209](https://doi.org/10.1016/j.bdr.2021.100209). arXiv:[2009.00304](https://arxiv.org/abs/2009.00304).
See our website for a [list of publications](https://www.theodolite.rocks/publications.html) directly related to Theodolite.