From c278cbb0ed65f26789807c635fa18940c2aa11a8 Mon Sep 17 00:00:00 2001 From: "stu126940@mail.uni-kiel.de" <stu126940@mail.uni-kiel.de> Date: Fri, 12 Mar 2021 11:59:09 +0100 Subject: [PATCH] Add todods/notes --- .../src/main/kotlin/theodolite/evaluation/MetricFetcher.kt | 3 +++ .../src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt | 3 ++- .../main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt index da70ab10b..9c80668ab 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/MetricFetcher.kt @@ -13,7 +13,9 @@ private val logger = KotlinLogging.logger {} class MetricFetcher(private val prometheusURL: String) { + // Instant fun fetchMetric(start: Long, end: Long, query: String): PrometheusResponse { + // TODO handle timeouts var trys = 0 val parameter = mapOf( "query" to query, @@ -40,6 +42,7 @@ class MetricFetcher(private val prometheusURL: String) { throw ConnectException("No answer from Prometheus received") } + // TODO required? private fun toISODate(timestamp: Long): String { val sdf = java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'") val date = Date(timestamp - (3600 * 1000))//subtract 1h since cluster is in another timezone diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt index 084d07c95..d602a7681 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/evaluation/SLOCheckerImpl.kt @@ -9,10 +9,11 @@ class SLOCheckerImpl(private val prometheusURL: String) : SLOChecker { override fun evaluate(start: Long, end: Long): Boolean { var counter = 0 val metricFetcher = MetricFetcher(prometheusURL = prometheusURL) - val fetchedData = metricFetcher.fetchMetric(start, end, "sum by(group)(kafka_consumergroup_group_lag > 0)") + val fetchedData = metricFetcher.fetchMetric(start, end, "sum by(group)(kafka_consumergroup_group_lag >= 0)") val data = JSONObject(mapOf("total_lag" to fetchedData.data?.result)) while (counter < 2) { + // TODO handle timeouts val result = post("http://127.0.0.1:8000/evaluate-slope", data = data) if (result.statusCode != 200) { counter++ diff --git a/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt b/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt index ff15e6452..630bb343a 100644 --- a/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt +++ b/theodolite-quarkus/src/main/kotlin/theodolite/execution/BenchmarkExecutorImpl.kt @@ -23,8 +23,8 @@ class BenchmarkExecutorImpl( benchmarkDeployment.teardown() // todo evaluate val result = SLOCheckerImpl("http://localhost:32656") - .evaluate( //TODO FIX HERE - Instant.now().toEpochMilli() - executionDuration.toMillis(), + .evaluate( //TODO FIX HERE, catch exception -> return false + Instant.now().toEpochMilli() - executionDuration.toMillis(), // TODO instant.minus(duration) Instant.now().toEpochMilli() ) this.results.setResult(Pair(load, res), result) -- GitLab