summaryrefslogtreecommitdiff
path: root/opendc-compute
diff options
context:
space:
mode:
Diffstat (limited to 'opendc-compute')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java1
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt1
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt10
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt10
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReaderImpl.kt26
5 files changed, 41 insertions, 7 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java
index 97202104..61c4145c 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java
@@ -40,4 +40,5 @@ public record GuestCpuStats(
long lostTime,
double capacity,
double usage,
+ double demand,
double utilization) {}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt
index 3a923222..3a2416a8 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt
@@ -233,6 +233,7 @@ public class Guest(
counters.cpuLostTime / 1000L,
counters.cpuCapacity,
counters.cpuSupply,
+ counters.cpuDemand,
counters.cpuSupply / cpuLimit,
)
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
index 6658e444..cf315947 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt
@@ -97,6 +97,16 @@ public object DfltTaskExportColumns {
field = Types.required(FLOAT).named("cpu_limit"),
) { it.cpuLimit }
+ public val CPU_USAGE: ExportColumn<TaskTableReader> =
+ ExportColumn(
+ field = Types.required(FLOAT).named("cpu_usage"),
+ ) { it.cpuUsage }
+
+ public val CPU_DEMAND: ExportColumn<TaskTableReader> =
+ ExportColumn(
+ field = Types.required(FLOAT).named("cpu_demand"),
+ ) { it.cpuDemand }
+
public val CPU_TIME_ACTIVE: ExportColumn<TaskTableReader> =
ExportColumn(
field = Types.required(INT64).named("cpu_time_active"),
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt
index 50ffa5fc..0a752e75 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt
@@ -100,6 +100,16 @@ public interface TaskTableReader : Exportable {
public val cpuLimit: Double
/**
+ * The CPU given to this task (in MHz).
+ */
+ public val cpuUsage: Double
+
+ /**
+ * The CPU demanded by this task (in MHz).
+ */
+ public val cpuDemand: Double
+
+ /**
* The duration (in seconds) that a CPU was active in the task.
*/
public val cpuActiveTime: Long
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReaderImpl.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReaderImpl.kt
index 5a0897f7..edcc8b20 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReaderImpl.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReaderImpl.kt
@@ -55,6 +55,8 @@ public class TaskTableReaderImpl(
_timestampAbsolute = table.timestampAbsolute
_cpuLimit = table.cpuLimit
+ _cpuDemand = table.cpuDemand
+ _cpuUsage = table.cpuUsage
_cpuActiveTime = table.cpuActiveTime
_cpuIdleTime = table.cpuIdleTime
_cpuStealTime = table.cpuStealTime
@@ -128,6 +130,14 @@ public class TaskTableReaderImpl(
get() = _cpuLimit
private var _cpuLimit = 0.0
+ override val cpuUsage: Double
+ get() = _cpuUsage
+ private var _cpuUsage = 0.0
+
+ override val cpuDemand: Double
+ get() = _cpuDemand
+ private var _cpuDemand = 0.0
+
override val cpuActiveTime: Long
get() = _cpuActiveTime - previousCpuActiveTime
private var _cpuActiveTime = 0L
@@ -181,14 +191,16 @@ public class TaskTableReaderImpl(
_timestampAbsolute = now + startTime
_cpuLimit = cpuStats?.capacity ?: 0.0
- _cpuActiveTime = cpuStats?.activeTime ?: 0
- _cpuIdleTime = cpuStats?.idleTime ?: 0
- _cpuStealTime = cpuStats?.stealTime ?: 0
- _cpuLostTime = cpuStats?.lostTime ?: 0
- _uptime = sysStats?.uptime?.toMillis() ?: 0
- _downtime = sysStats?.downtime?.toMillis() ?: 0
+ _cpuDemand = cpuStats?.demand ?: 0.0
+ _cpuUsage = cpuStats?.usage ?: 0.0
+ _cpuActiveTime = cpuStats?.activeTime ?: _cpuActiveTime
+ _cpuIdleTime = cpuStats?.idleTime ?: _cpuIdleTime
+ _cpuStealTime = cpuStats?.stealTime ?: _cpuStealTime
+ _cpuLostTime = cpuStats?.lostTime ?: _cpuLostTime
+ _uptime = sysStats?.uptime?.toMillis() ?: _uptime
+ _downtime = sysStats?.downtime?.toMillis() ?: _downtime
_provisionTime = task.launchedAt
- _bootTime = sysStats?.bootTime
+ _bootTime = sysStats?.bootTime ?: _bootTime
_creationTime = task.createdAt
_finishTime = task.finishedAt