summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-energy21/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-04 21:43:46 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-05-05 12:12:30 +0200
commitad65a05e3f41850807f95f7d643496a4d39a6197 (patch)
tree238b0fc83a5836d3fc08e3e888cec298eb8e8cd1 /opendc-experiments/opendc-experiments-energy21/src/main
parent6466d5e1b8da4582434f02dff2ab56e8f736ef85 (diff)
exp: Add support for experiment configuration
This change adds support for configuring the experiments via configuration files using the TypeSafe config library. In the future, we will also integrate support for configuration into the harness.
Diffstat (limited to 'opendc-experiments/opendc-experiments-energy21/src/main')
-rw-r--r--opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt14
-rw-r--r--opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf8
2 files changed, 13 insertions, 9 deletions
diff --git a/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt b/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt
index 772c9bcc..7460a1e7 100644
--- a/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt
+++ b/opendc-experiments/opendc-experiments-energy21/src/main/kotlin/org/opendc/experiments/energy21/EnergyExperiment.kt
@@ -22,6 +22,7 @@
package org.opendc.experiments.energy21
+import com.typesafe.config.ConfigFactory
import io.opentelemetry.api.metrics.MeterProvider
import io.opentelemetry.sdk.metrics.SdkMeterProvider
import io.opentelemetry.sdk.metrics.export.MetricProducer
@@ -65,14 +66,9 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
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/"))
-
- /**
- * 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.energy21")
/**
* The traces to test.
@@ -96,8 +92,8 @@ public class EnergyExperiment : Experiment("Energy Modeling 2021") {
.setClock(clock.toOtelClock())
.build()
- val monitor = ParquetExperimentMonitor(outputPath, "power_model=$powerModel/run_id=$repeat", 4096)
- val trace = Sc20StreamingParquetTraceReader(File(tracePath, trace), random = Random(1).asKotlinRandom())
+ val monitor = ParquetExperimentMonitor(File(config.getString("output-path")), "power_model=$powerModel/run_id=$repeat", 4096)
+ val trace = Sc20StreamingParquetTraceReader(File(config.getString("trace-path"), trace), random = Random(1).asKotlinRandom())
withComputeService(clock, meterProvider, allocationPolicy) { scheduler ->
withMonitor(monitor, clock, meterProvider as MetricProducer, scheduler) {
diff --git a/opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf b/opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf
new file mode 100644
index 00000000..3e011862
--- /dev/null
+++ b/opendc-experiments/opendc-experiments-energy21/src/main/resources/application.conf
@@ -0,0 +1,8 @@
+# Default configuration for the energy experiments
+opendc.experiments.energy21 {
+ # Path to the directory containing the input traces
+ trace-path = input/traces
+
+ # Path to the output directory to write the results to
+ output-path = output
+}