Move definition of SLOs to Benchmark
Currently, SLOs are defined as part of the Execution resource. According to our proposed data model (see image below), a list of SLOs should be defined by the Benchmark, but can be restricted by an Execution. This simplifies Theodolites usability as in most cases, Benchmarkers would not need to know how SLO checkers work internally.
The possible outcome could look similar to:
Benchmark YAML:
slos:
- name: "lag trend"
sloType: "lag trend"
prometheusUrl: "http://prometheus-operated:9090"
offset: 0
properties:
threshold: 2000 # default value
externalSloUrl: "http://localhost:80/evaluate-slope"
warmup: 60 # default value, in seconds
- ...
Execution YAML:
slos: # if not defined, use all of benchmark
- name: "lag trend" # refer to the "lag trend" SLO from the benchmark
properties: # optional overrides
threshold: 4000
warmup: 120 # in seconds
- ...
This involves modifications to the following CRD schemata: Benchmark, Execution
Edited by Sören Henning