summaryrefslogtreecommitdiff
path: root/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt')
-rw-r--r--opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt42
1 files changed, 42 insertions, 0 deletions
diff --git a/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt b/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt
new file mode 100644
index 00000000..f59f90a1
--- /dev/null
+++ b/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt
@@ -0,0 +1,42 @@
+package org.opendc.demo
+
+import com.fasterxml.jackson.databind.ObjectMapper
+import org.apache.kafka.clients.producer.ProducerRecord
+import org.opendc.compute.simulator.telemetry.ComputeMonitor
+import org.opendc.compute.simulator.telemetry.table.host.HostTableReader
+import java.time.Instant
+
+public class DemoComputeMonitor: ComputeMonitor {
+ public val metrics : MonitoringMetrics = MonitoringMetrics()
+
+ @Override
+ override fun record(reader: HostTableReader) {
+ metrics.timestamp = reader.timestamp.toEpochMilli()
+ metrics.tasksActive = reader.tasksActive
+ metrics.clusterName = reader.hostInfo.clusterName
+
+ try{
+ val objectMapper = ObjectMapper()
+ val jsonBytes = objectMapper.writeValueAsBytes(metrics)
+ println(metrics.clusterName)
+ }
+
+ catch(e: Exception){
+ println("${e.message}")
+ }
+ }
+
+}
+public class MonitoringMetrics {
+ public var timestamp: Long = 0
+ public var tasksActive : Int = 0
+ public var cpuUsage : Double = 0.0
+ public var cpuUtilisation: Double = 0.0
+ public var cpuActiveTime : Long = 0
+ public var cpuIdleTime: Long = 0
+ public var cpuLostTime: Long = 0
+ public var energyUsage: Double = 0.0
+ public var uptime: Long = 0
+ public var powerDraw: Double = 0.0
+ public var clusterName: String = ""
+}