summaryrefslogtreecommitdiff
path: root/opendc-telemetry/opendc-telemetry-compute/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-13 15:42:41 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-10-25 17:58:53 +0200
commitf565afb1ef7b940804af62aa73b6859dcb78a847 (patch)
tree37bb2985c25e944939fb954026f8e816ec18bfe3 /opendc-telemetry/opendc-telemetry-compute/src
parente76bebe9e81c3813422da6d67fbab7d9f471a317 (diff)
feat(telemetry): Report provisioning time of virtual machines
This change adds support for collecting the provisioning time of virtual machines in addition to their boot time.
Diffstat (limited to 'opendc-telemetry/opendc-telemetry-compute/src')
-rw-r--r--opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/ComputeMetricAggregator.kt30
-rw-r--r--opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/table/ServerData.kt2
2 files changed, 16 insertions, 16 deletions
diff --git a/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/ComputeMetricAggregator.kt b/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/ComputeMetricAggregator.kt
index d5257bbd..b293f7b5 100644
--- a/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/ComputeMetricAggregator.kt
+++ b/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/ComputeMetricAggregator.kt
@@ -30,7 +30,6 @@ import io.opentelemetry.sdk.resources.Resource
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes
import org.opendc.telemetry.compute.table.*
import java.time.Instant
-import kotlin.math.roundToLong
/**
* Helper class responsible for aggregating [MetricData] into [ServiceData], [HostData] and [ServerData].
@@ -81,12 +80,6 @@ public class ComputeMetricAggregator {
}
}
}
- "scheduler.latency" -> {
- for (point in metric.doubleHistogramData.points) {
- val server = getServer(servers, point) ?: continue
- server.schedulingLatency = (point.sum / point.count).roundToLong()
- }
- }
// SimHost
"system.guests" -> {
@@ -190,13 +183,20 @@ public class ComputeMetricAggregator {
val server = getServer(servers, point)
if (server != null) {
- server.bootTime = point.value
+ server.bootTime = Instant.ofEpochMilli(point.value)
server.host = agg.host
} else {
- agg.bootTime = point.value
+ agg.bootTime = Instant.ofEpochMilli(point.value)
}
}
}
+ "system.time.provision" -> {
+ for (point in metric.longGaugeData.points) {
+ val server = getServer(servers, point) ?: continue
+ server.recordTimestamp(point)
+ server.provisionTime = Instant.ofEpochMilli(point.value)
+ }
+ }
}
}
}
@@ -323,7 +323,7 @@ public class ComputeMetricAggregator {
private var previousUptime = 0L
@JvmField var downtime = 0L
private var previousDowntime = 0L
- @JvmField var bootTime = Long.MIN_VALUE
+ @JvmField var bootTime: Instant? = null
/**
* Finish the aggregation for this cycle.
@@ -379,7 +379,7 @@ public class ComputeMetricAggregator {
powerTotal - previousPowerTotal,
uptime - previousUptime,
downtime - previousDowntime,
- if (bootTime != Long.MIN_VALUE) Instant.ofEpochMilli(bootTime) else null
+ bootTime
)
}
@@ -419,8 +419,8 @@ public class ComputeMetricAggregator {
private var previousUptime = 0L
@JvmField var downtime: Long = 0
private var previousDowntime = 0L
- @JvmField var bootTime: Long = 0
- @JvmField var schedulingLatency = 0L
+ @JvmField var provisionTime: Instant? = null
+ @JvmField var bootTime: Instant? = null
@JvmField var cpuLimit = 0.0
@JvmField var cpuActiveTime = 0L
@JvmField var cpuIdleTime = 0L
@@ -461,8 +461,8 @@ public class ComputeMetricAggregator {
host,
uptime - previousUptime,
downtime - previousDowntime,
- if (bootTime != Long.MIN_VALUE) Instant.ofEpochMilli(bootTime) else null,
- schedulingLatency,
+ provisionTime,
+ bootTime,
cpuLimit,
cpuActiveTime - previousCpuActiveTime,
cpuIdleTime - previousCpuIdleTime,
diff --git a/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/table/ServerData.kt b/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/table/ServerData.kt
index c48bff3a..6fd2a81b 100644
--- a/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/table/ServerData.kt
+++ b/opendc-telemetry/opendc-telemetry-compute/src/main/kotlin/org/opendc/telemetry/compute/table/ServerData.kt
@@ -33,8 +33,8 @@ public data class ServerData(
val host: HostInfo?,
val uptime: Long,
val downtime: Long,
+ val provisionTime: Instant?,
val bootTime: Instant?,
- val schedulingLatency: Long,
val cpuLimit: Double,
val cpuActiveTime: Long,
val cpuIdleTime: Long,