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 = "" }