From f2e26bd03f26c318a25d4f7efeb72a953af398c1 Mon Sep 17 00:00:00 2001 From: "stu126940@mail.uni-kiel.de" <stu126940@mail.uni-kiel.de> Date: Wed, 13 Oct 2021 15:14:52 +0200 Subject: [PATCH] Load paramter via quarkus configuration mechanism --- .../theodolite/evaluation/AnalysisExecutor.kt | 2 +- .../theodolite/evaluation/SloConfigHandler.kt | 21 +++++++++++++++++++ .../theodolite/util/TheodoliteConfig.kt | 18 ++++++++++++++++ .../src/main/resources/application.properties | 3 +++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 theodolite/src/main/kotlin/theodolite/evaluation/SloConfigHandler.kt create mode 100644 theodolite/src/main/kotlin/theodolite/util/TheodoliteConfig.kt diff --git a/theodolite/src/main/kotlin/theodolite/evaluation/AnalysisExecutor.kt b/theodolite/src/main/kotlin/theodolite/evaluation/AnalysisExecutor.kt index 8e363a18e..d1eadd035 100644 --- a/theodolite/src/main/kotlin/theodolite/evaluation/AnalysisExecutor.kt +++ b/theodolite/src/main/kotlin/theodolite/evaluation/AnalysisExecutor.kt @@ -51,7 +51,7 @@ class AnalysisExecutor( fetcher.fetchMetric( start = interval.first, end = interval.second, - query = slo.query + query = SloConfigHandler.getQueryString(sloType = slo.sloType) ) } diff --git a/theodolite/src/main/kotlin/theodolite/evaluation/SloConfigHandler.kt b/theodolite/src/main/kotlin/theodolite/evaluation/SloConfigHandler.kt new file mode 100644 index 000000000..38f21f586 --- /dev/null +++ b/theodolite/src/main/kotlin/theodolite/evaluation/SloConfigHandler.kt @@ -0,0 +1,21 @@ +package theodolite.evaluation + +import theodolite.util.InvalidPatcherConfigurationException +import theodolite.util.TheodoliteConfig +import javax.inject.Inject + +class SloConfigHandler { + + companion object { + @Inject + lateinit var config: TheodoliteConfig + + fun getQueryString(sloType: String): String { + return when (sloType){ + "Lag Trend" -> config.PROM_RECORD_LAG_QUERY + "Dropped Records" -> config.PROM_DROPPED_RECORDS_QUERY + else -> throw InvalidPatcherConfigurationException("Could not find Prometheus query string for slo type $sloType") + } + } + } +} \ No newline at end of file diff --git a/theodolite/src/main/kotlin/theodolite/util/TheodoliteConfig.kt b/theodolite/src/main/kotlin/theodolite/util/TheodoliteConfig.kt new file mode 100644 index 000000000..3a2cbe8b9 --- /dev/null +++ b/theodolite/src/main/kotlin/theodolite/util/TheodoliteConfig.kt @@ -0,0 +1,18 @@ +package theodolite.util + +import io.quarkus.arc.config.ConfigProperties +import org.eclipse.microprofile.config.inject.ConfigProperty +import javax.enterprise.context.ApplicationScoped +import javax.inject.Inject +import javax.inject.Singleton + + +@ApplicationScoped +class TheodoliteConfig{ + + @ConfigProperty(name = "prom.dropped.records.query") + lateinit var PROM_DROPPED_RECORDS_QUERY: String + + @ConfigProperty(name = "prom.record.lag.query") + lateinit var PROM_RECORD_LAG_QUERY: String +} \ No newline at end of file diff --git a/theodolite/src/main/resources/application.properties b/theodolite/src/main/resources/application.properties index 42647e239..b888207f1 100644 --- a/theodolite/src/main/resources/application.properties +++ b/theodolite/src/main/resources/application.properties @@ -4,3 +4,6 @@ quarkus.native.additional-build-args=\ --initialize-at-run-time=io.fabric8.kubernetes.client.dsl.internal.core.v1.PodOperationsImpl$1,\ --initialize-at-run-time=io.fabric8.kubernetes.client.dsl.internal.core.v1.PodOperationsImpl$3,\ --report-unsupported-elements-at-runtime + +prom.record.lag.query="sum by(group)(kafka_consumergroup_group_lag >= 0)" +prom.dropped.records.query="todo" -- GitLab