summaryrefslogtreecommitdiff
path: root/opendc-demo/src/main/kotlin/org/opendc/demo/DemoComputeMonitor.kt
blob: f59f90a1bd99e70d3f7a3e11308aa76fe0494ab9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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 = ""
}