Skip to content
Snippets Groups Projects

Load execution ID from file

Merged Benedikt Wetzel requested to merge wetzel/spesb:read-exp-id-from-file into theodolite-kotlin
All threads resolved!
Files
13
@@ -2,6 +2,7 @@ package theodolite.evaluation
@@ -2,6 +2,7 @@ package theodolite.evaluation
import mu.KotlinLogging
import mu.KotlinLogging
import theodolite.benchmark.BenchmarkExecution
import theodolite.benchmark.BenchmarkExecution
 
import theodolite.util.IOHandler
import theodolite.util.LoadDimension
import theodolite.util.LoadDimension
import theodolite.util.Resource
import theodolite.util.Resource
import java.text.Normalizer
import java.text.Normalizer
@@ -36,24 +37,25 @@ class AnalysisExecutor(
@@ -36,24 +37,25 @@ class AnalysisExecutor(
*/
*/
fun analyze(load: LoadDimension, res: Resource, executionIntervals: List<Pair<Instant, Instant>>): Boolean {
fun analyze(load: LoadDimension, res: Resource, executionIntervals: List<Pair<Instant, Instant>>): Boolean {
var result = false
var result = false
val exporter = CsvExporter()
var repetitionCounter = 1
var repetitionCounter = 1
try {
try {
var resultsFolder: String = System.getenv("RESULTS_FOLDER") ?: ""
val ioHandler = IOHandler()
if (resultsFolder.isNotEmpty()){
val resultsFolder: String = ioHandler.getResultFolderURL()
resultsFolder += "/"
val fileURL = "${resultsFolder}exp${executionId}_${load.get()}_${res.get()}_${slo.sloType.toSlug()}"
}
val prometheusData = executionIntervals
val prometheusData = executionIntervals
.map { interval -> fetcher.fetchMetric(
.map { interval -> fetcher.fetchMetric(
start = interval.first,
start = interval.first,
end = interval.second,
end = interval.second,
query = "sum by(group)(kafka_consumergroup_group_lag >= 0)") }
query = "sum by(group)(kafka_consumergroup_group_lag >= 0)") }
val fileName= "${resultsFolder}exp${executionId}_${load.get()}_${res.get()}_${slo.sloType.toSlug()}"
prometheusData.forEach{ data ->
prometheusData.forEach{ data ->
exporter.toCsv(name = "${fileName}_${repetitionCounter++}", prom = data) }
ioHandler.writeToCSVFile(
fileURL = "${fileURL}_${repetitionCounter++}",
 
data = data.getResultAsList(),
 
columns = listOf("group", "timestamp", "value"))
 
}
val sloChecker = SloCheckerFactory().create(
val sloChecker = SloCheckerFactory().create(
sloType = slo.sloType,
sloType = slo.sloType,
Loading