summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-serverless20/src
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-experiments/opendc-experiments-serverless20/src')
-rw-r--r--opendc-experiments/opendc-experiments-serverless20/src/main/kotlin/org/opendc/experiments/serverless/ServerlessExperiment.kt14
-rw-r--r--opendc-experiments/opendc-experiments-serverless20/src/main/resources/application.conf8
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
+}