diff options
Diffstat (limited to 'opendc-experiments/opendc-experiments-serverless20/src')
2 files changed, 12 insertions, 10 deletions
diff --git a/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt b/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt index 67b5ea54..3ff01e39 100644 --- a/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt +++ b/opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt @@ -22,9 +22,9 @@ package org.opendc.experiments.serverless +import com.typesafe.config.ConfigFactory import io.opentelemetry.api.metrics.MeterProvider import io.opentelemetry.sdk.metrics.SdkMeterProvider -import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -59,14 +59,9 @@ public class ServerlessExperiment : Experiment("Serverless") { private val logger = KotlinLogging.logger {} /** - * The path to where the traces are located. + * The configuration to use. */ - private val tracePath by anyOf(File("../../input/traces/serverless")) - - /** - * The path to where the output results should be written. - */ - private val outputPath by anyOf(File("output/")) + private val config = ConfigFactory.load().getConfig("opendc.experiments.serverless20") /** * The routing policy to test. @@ -78,14 +73,13 @@ public class ServerlessExperiment : Experiment("Serverless") { */ private val coldStartModel by anyOf(ColdStartModel.LAMBDA, ColdStartModel.AZURE, ColdStartModel.GOOGLE) - @OptIn(ExperimentalCoroutinesApi::class) override fun doRun(repeat: Int): Unit = runBlockingSimulation { val meterProvider: MeterProvider = SdkMeterProvider .builder() .setClock(clock.toOtelClock()) .build() - val trace = ServerlessTraceReader().parse(tracePath) + val trace = ServerlessTraceReader().parse(File(config.getString("trace-path"))) val traceById = trace.associateBy { it.id } val delayInjector = StochasticDelayInjector(coldStartModel, Random()) val deployer = SimFunctionDeployer(clock, this, createMachineModel(), delayInjector) { FunctionTraceWorkload(traceById.getValue(it.name)) } diff --git a/opendc-experiments/opendc-experiments-serverless20/src/main/resources/application.conf b/opendc-experiments/opendc-experiments-serverless20/src/main/resources/application.conf new file mode 100644 index 00000000..a065c5d6 --- /dev/null +++ b/opendc-experiments/opendc-experiments-serverless20/src/main/resources/application.conf @@ -0,0 +1,8 @@ +# Default configuration for the serverless experiments +opendc.experiments.serverless20 { + # Path to the directory containing the serverless trace + trace-path = input/traces/serverless + + # Path to the output directory to write the results to + output-path = output +} |
