summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-10-10 11:05:11 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2022-10-10 12:14:50 +0200
commit6c896a4a29147a863d797ac5bd5a210d4a9a78ef (patch)
tree709b59fba85ec90a1526cf150ab8703141a30901
parentd889a41487c1312ed11deb7e88f0214ac057727c (diff)
fix(compute/service): Expose number of registered servers
This change updates the compute service telemetry to also expose the number of servers that are registered with the service.
-rw-r--r--opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt1
-rw-r--r--opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/telemetry/SchedulerStats.kt2
-rw-r--r--opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/ComputeMetricReader.kt5
-rw-r--r--opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceData.kt3
-rw-r--r--opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceTableReader.kt5
-rw-r--r--opendc-experiments/opendc-experiments-compute/src/test/kotlin/org/opendc/experiments/compute/export/parquet/ServiceDataWriterTest.kt1
6 files changed, 16 insertions, 1 deletions
diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt b/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt
index caa95e09..0fe016aa 100644
--- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt
+++ b/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt
@@ -295,6 +295,7 @@ internal class ComputeServiceImpl(
_attemptsSuccess,
_attemptsFailure,
_attemptsError,
+ servers.size,
_serversPending,
_serversActive
)
diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/telemetry/SchedulerStats.kt b/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/telemetry/SchedulerStats.kt
index 4dc70286..6e9f458a 100644
--- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/telemetry/SchedulerStats.kt
+++ b/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/telemetry/SchedulerStats.kt
@@ -32,6 +32,7 @@ import org.opendc.compute.service.ComputeService
* @property attemptsSuccess Scheduling attempts that resulted into an allocation onto a host.
* @property attemptsFailure The number of failed scheduling attempt due to insufficient capacity at the moment.
* @property attemptsError The number of scheduling attempts that failed due to system error.
+ * @property serversTotal The number of servers registered with the service.
* @property serversPending The number of servers that are pending to be scheduled.
* @property serversActive The number of servers that are currently managed by the service and running.
*/
@@ -41,6 +42,7 @@ public data class SchedulerStats(
val attemptsSuccess: Long,
val attemptsFailure: Long,
val attemptsError: Long,
+ val serversTotal: Int,
val serversPending: Int,
val serversActive: Int
)
diff --git a/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/ComputeMetricReader.kt b/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/ComputeMetricReader.kt
index 7e89eab1..ac058171 100644
--- a/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/ComputeMetricReader.kt
+++ b/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/ComputeMetricReader.kt
@@ -138,6 +138,10 @@ public class ComputeMetricReader(
get() = _hostsDown
private var _hostsDown = 0
+ override val serversTotal: Int
+ get() = _serversTotal
+ private var _serversTotal = 0
+
override val serversPending: Int
get() = _serversPending
private var _serversPending = 0
@@ -167,6 +171,7 @@ public class ComputeMetricReader(
val stats = service.getSchedulerStats()
_hostsUp = stats.hostsAvailable
_hostsDown = stats.hostsUnavailable
+ _serversTotal = stats.serversTotal
_serversPending = stats.serversPending
_serversActive = stats.serversActive
_attemptsSuccess = stats.attemptsSuccess.toInt()
diff --git a/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceData.kt b/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceData.kt
index 394c6bd6..5b6960a3 100644
--- a/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceData.kt
+++ b/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceData.kt
@@ -31,6 +31,7 @@ public data class ServiceData(
val timestamp: Instant,
val hostsUp: Int,
val hostsDown: Int,
+ val serversTotal: Int,
val serversPending: Int,
val serversActive: Int,
val attemptsSuccess: Int,
@@ -42,5 +43,5 @@ public data class ServiceData(
* Convert a [ServiceTableReader] into a persistent object.
*/
public fun ServiceTableReader.toServiceData(): ServiceData {
- return ServiceData(timestamp, hostsUp, hostsDown, serversPending, serversActive, attemptsSuccess, attemptsFailure, attemptsError)
+ return ServiceData(timestamp, hostsUp, hostsDown, serversTotal, serversPending, serversActive, attemptsSuccess, attemptsFailure, attemptsError)
}
diff --git a/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceTableReader.kt b/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceTableReader.kt
index 0155a879..bb926298 100644
--- a/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceTableReader.kt
+++ b/opendc-experiments/opendc-experiments-compute/src/main/kotlin/org/opendc/experiments/compute/telemetry/table/ServiceTableReader.kt
@@ -44,6 +44,11 @@ public interface ServiceTableReader {
public val hostsDown: Int
/**
+ * The number of servers that are registered with the compute service..
+ */
+ public val serversTotal: Int
+
+ /**
* The number of servers that are pending to be scheduled.
*/
public val serversPending: Int
diff --git a/opendc-experiments/opendc-experiments-compute/src/test/kotlin/org/opendc/experiments/compute/export/parquet/ServiceDataWriterTest.kt b/opendc-experiments/opendc-experiments-compute/src/test/kotlin/org/opendc/experiments/compute/export/parquet/ServiceDataWriterTest.kt
index 20301185..978cc9d4 100644
--- a/opendc-experiments/opendc-experiments-compute/src/test/kotlin/org/opendc/experiments/compute/export/parquet/ServiceDataWriterTest.kt
+++ b/opendc-experiments/opendc-experiments-compute/src/test/kotlin/org/opendc/experiments/compute/export/parquet/ServiceDataWriterTest.kt
@@ -56,6 +56,7 @@ class ServiceDataWriterTest {
override val timestamp: Instant = Instant.now()
override val hostsUp: Int = 1
override val hostsDown: Int = 0
+ override val serversTotal: Int = 1
override val serversPending: Int = 1
override val serversActive: Int = 1
override val attemptsSuccess: Int = 1