summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-capelin/src/main
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-28 11:23:13 +0200
committerGitHub <noreply@github.com>2021-09-28 11:23:13 +0200
commit6196895bfd0334052afa4fb91b00adb259a661b6 (patch)
tree8a14988b30f6f5758b1f9f982d0086296eb5d416 /opendc-experiments/opendc-experiments-capelin/src/main
parent993c65d9c287d8db2db9ff1f95abb414803a502c (diff)
parent94d8ee69e52dcd375a662a08c198aa29670362fb (diff)
merge: Simplify usage of ComputeMetricExporter
This pull request addresses some issues with the current implementation of the `ComputeMetricExporter` class. In particular, the construction of `ComputeMetricExporter` does not require a `Clock` anymore. - Ensure shutdown of exporter is called - Do not require clock for ComputeMetricExporter - Do not recover guests in non-error state - Write null values explicitly in Parquet exporter - Report cause of compute exporter failure **Breaking API Changes** - `ComputeMetricExporter` is now an abstract class that can be extended to collect metrics - `ParquetComputeMonitor` has been renamed to `ParquetComputeMetricExporter` and extends `ComputeMetricExporter`
Diffstat (limited to 'opendc-experiments/opendc-experiments-capelin/src/main')
-rw-r--r--opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/Portfolio.kt10
1 files changed, 4 insertions, 6 deletions
diff --git a/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/Portfolio.kt b/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/Portfolio.kt
index 2201a6b4..21ff3ab0 100644
--- a/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/Portfolio.kt
+++ b/opendc-experiments/opendc-experiments-capelin/src/main/kotlin/org/opendc/experiments/capelin/Portfolio.kt
@@ -27,7 +27,7 @@ import mu.KotlinLogging
import org.opendc.compute.workload.ComputeWorkloadLoader
import org.opendc.compute.workload.ComputeWorkloadRunner
import org.opendc.compute.workload.createComputeScheduler
-import org.opendc.compute.workload.export.parquet.ParquetExportMonitor
+import org.opendc.compute.workload.export.parquet.ParquetComputeMetricExporter
import org.opendc.compute.workload.grid5000
import org.opendc.compute.workload.topology.apply
import org.opendc.compute.workload.util.PerformanceInterferenceReader
@@ -39,7 +39,6 @@ import org.opendc.harness.dsl.Experiment
import org.opendc.harness.dsl.anyOf
import org.opendc.simulator.compute.kernel.interference.VmInterferenceModel
import org.opendc.simulator.core.runBlockingSimulation
-import org.opendc.telemetry.compute.ComputeMetricExporter
import org.opendc.telemetry.compute.collectServiceMetrics
import org.opendc.telemetry.sdk.metrics.export.CoroutineMetricReader
import java.io.File
@@ -120,12 +119,12 @@ abstract class Portfolio(name: String) : Experiment(name) {
performanceInterferenceModel
)
- val monitor = ParquetExportMonitor(
+ val exporter = ParquetComputeMetricExporter(
File(config.getString("output-path")),
"portfolio_id=$name/scenario_id=$id/run_id=$repeat",
4096
)
- val metricReader = CoroutineMetricReader(this, runner.producers, ComputeMetricExporter(clock, monitor))
+ val metricReader = CoroutineMetricReader(this, runner.producers, exporter)
val topology = clusterTopology(File(config.getString("env-path"), "${topology.name}.txt"))
try {
@@ -137,10 +136,9 @@ abstract class Portfolio(name: String) : Experiment(name) {
} finally {
runner.close()
metricReader.close()
- monitor.close()
}
- val monitorResults = collectServiceMetrics(clock.instant(), runner.producers[0])
+ val monitorResults = collectServiceMetrics(runner.producers[0])
logger.debug {
"Scheduler " +
"Success=${monitorResults.attemptsSuccess} " +