Skip to content

Commit

Permalink
Updated metrics and parquet output (#195)
Browse files Browse the repository at this point in the history
* Updated metrics and parquet output

* fixed typos
  • Loading branch information
DanteNiewenhuis authored Feb 14, 2024
1 parent 616017b commit 10c4710
Show file tree
Hide file tree
Showing 15 changed files with 139 additions and 83 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
* @param uptime The cumulative uptime of the host since last boot (in ms).
* @param downtime The cumulative downtime of the host since last boot (in ms).
* @param bootTime The time at which the server started.
* @param powerUsage Instantaneous power usage of the system (in W).
* @param powerDraw Instantaneous power draw of the system (in W).
* @param energyUsage The cumulative energy usage of the system (in J).
* @param guestsTerminated The number of guests that are in a terminated state.
* @param guestsRunning The number of guests that are in a running state.
Expand All @@ -42,7 +42,7 @@ public record HostSystemStats(
Duration uptime,
Duration downtime,
Instant bootTime,
double powerUsage,
double powerDraw,
double energyUsage,
int guestsTerminated,
int guestsRunning,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ public class SimHost(
Duration.ofMillis(_uptime),
Duration.ofMillis(_downtime),
_bootTime,
machine.psu.powerUsage,
machine.psu.powerDraw,
machine.psu.energyUsage,
terminated,
running,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,8 +227,8 @@ public class ComputeMetricReader(
_cpuIdleTime = table.cpuIdleTime
_cpuStealTime = table.cpuStealTime
_cpuLostTime = table.cpuLostTime
_powerUsage = table.powerUsage
_powerTotal = table.powerTotal
_powerDraw = table.powerDraw
_energyUsage = table.energyUsage
_uptime = table.uptime
_downtime = table.downtime
_bootTime = table.bootTime
Expand Down Expand Up @@ -294,13 +294,13 @@ public class ComputeMetricReader(
private var _cpuLostTime = 0L
private var previousCpuLostTime = 0L

override val powerUsage: Double
get() = _powerUsage
private var _powerUsage = 0.0
override val powerDraw: Double
get() = _powerDraw
private var _powerDraw = 0.0

override val powerTotal: Double
get() = _powerTotal - previousPowerTotal
private var _powerTotal = 0.0
override val energyUsage: Double
get() = _energyUsage - previousPowerTotal
private var _energyUsage = 0.0
private var previousPowerTotal = 0.0

override val uptime: Long
Expand Down Expand Up @@ -337,8 +337,8 @@ public class ComputeMetricReader(
_cpuIdleTime = hostCpuStats.idleTime
_cpuStealTime = hostCpuStats.stealTime
_cpuLostTime = hostCpuStats.lostTime
_powerUsage = hostSysStats.powerUsage
_powerTotal = hostSysStats.energyUsage
_powerDraw = hostSysStats.powerDraw
_energyUsage = hostSysStats.energyUsage
_uptime = hostSysStats.uptime.toMillis()
_downtime = hostSysStats.downtime.toMillis()
_bootTime = hostSysStats.bootTime
Expand All @@ -353,7 +353,7 @@ public class ComputeMetricReader(
previousCpuIdleTime = _cpuIdleTime
previousCpuStealTime = _cpuStealTime
previousCpuLostTime = _cpuLostTime
previousPowerTotal = _powerTotal
previousPowerTotal = _energyUsage
previousUptime = _uptime
previousDowntime = _downtime

Expand All @@ -367,7 +367,7 @@ public class ComputeMetricReader(
_cpuDemand = 0.0
_cpuUtilization = 0.0

_powerUsage = 0.0
_powerDraw = 0.0
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,17 @@ import java.io.File
*/
public class ParquetComputeMonitor(base: File, partition: String, bufferSize: Int) : ComputeMonitor, AutoCloseable {
private val serverWriter = ParquetServerDataWriter(
File(base, "server/$partition/data.parquet").also { it.parentFile.mkdirs() },
File(base, "$partition/server.parquet").also { it.parentFile.mkdirs() },
bufferSize
)

private val hostWriter = ParquetHostDataWriter(
File(base, "host/$partition/data.parquet").also { it.parentFile.mkdirs() },
File(base, "$partition/host.parquet").also { it.parentFile.mkdirs() },
bufferSize
)

private val serviceWriter = ParquetServiceDataWriter(
File(base, "service/$partition/data.parquet").also { it.parentFile.mkdirs() },
File(base, "$partition/service.parquet").also { it.parentFile.mkdirs() },
bufferSize
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,23 +134,27 @@ public class ParquetHostDataWriter(path: File, bufferSize: Int) :
consumer.addLong(data.cpuLostTime)
consumer.endField("cpu_time_lost", 15)

consumer.startField("power_total", 16)
consumer.addDouble(data.powerTotal)
consumer.endField("power_total", 16)
consumer.startField("power_draw", 16)
consumer.addDouble(data.powerDraw)
consumer.endField("power_draw", 16)

consumer.startField("uptime", 17)
consumer.startField("energy_usage", 17)
consumer.addDouble(data.energyUsage)
consumer.endField("energy_usage", 17)

consumer.startField("uptime", 18)
consumer.addLong(data.uptime)
consumer.endField("uptime", 17)
consumer.endField("uptime", 18)

consumer.startField("downtime", 18)
consumer.startField("downtime", 19)
consumer.addLong(data.downtime)
consumer.endField("downtime", 18)
consumer.endField("downtime", 19)

val bootTime = data.bootTime
if (bootTime != null) {
consumer.startField("boot_time", 19)
consumer.startField("boot_time", 20)
consumer.addLong(bootTime.toEpochMilli())
consumer.endField("boot_time", 19)
consumer.endField("boot_time", 20)
}

consumer.endMessage()
Expand Down Expand Up @@ -216,7 +220,10 @@ public class ParquetHostDataWriter(path: File, bufferSize: Int) :
.named("cpu_time_lost"),
Types
.required(PrimitiveType.PrimitiveTypeName.DOUBLE)
.named("power_total"),
.named("power_draw"),
Types
.required(PrimitiveType.PrimitiveTypeName.DOUBLE)
.named("energy_usage"),
Types
.required(PrimitiveType.PrimitiveTypeName.INT64)
.named("uptime"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,14 @@ public interface HostTableReader {
public val cpuLostTime: Long

/**
* The current power usage of the host in W.
* The current power draw of the host in W.
*/
public val powerUsage: Double
public val powerDraw: Double

/**
* The total power consumption of the host since last time in J.
* The total energy consumption of the host since last time in J.
*/
public val powerTotal: Double
public val energyUsage: Double

/**
* The uptime of the host since last time in ms.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ class CapelinIntegrationTest {
activeTime += reader.cpuActiveTime
stealTime += reader.cpuStealTime
lostTime += reader.cpuLostTime
energyUsage += reader.powerTotal
energyUsage += reader.energyUsage
uptime += reader.uptime
}
}
Expand Down
Loading

0 comments on commit 10c4710

Please sign in to comment.