diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2020-05-08 10:23:10 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2020-05-08 10:23:10 +0200 |
| commit | db934d9cebe1d48e148e54aca507e2c44a9bc946 (patch) | |
| tree | cffff3e75926084edd742e28d2cb4c84d8372604 /opendc/opendc-compute | |
| parent | e2e7e1abaf70d7e49e2e4af04648796f01ba6492 (diff) | |
| parent | cbdbf818004040b60aa122dc6cb98ef635fa5ac1 (diff) | |
Merge branch 'feat/database-metrics' into '2.x'
Add database integration for experimental results
Closes #57
See merge request opendc/opendc-simulator!65
Diffstat (limited to 'opendc/opendc-compute')
| -rw-r--r-- | opendc/opendc-compute/build.gradle.kts | 1 | ||||
| -rw-r--r-- | opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt | 13 |
2 files changed, 9 insertions, 5 deletions
diff --git a/opendc/opendc-compute/build.gradle.kts b/opendc/opendc-compute/build.gradle.kts index 09c904f2..7d43b064 100644 --- a/opendc/opendc-compute/build.gradle.kts +++ b/opendc/opendc-compute/build.gradle.kts @@ -33,6 +33,7 @@ dependencies { implementation(kotlin("stdlib")) api(project(":odcsim:odcsim-api")) api(project(":opendc:opendc-core")) + implementation("io.github.microutils:kotlin-logging:1.7.9") testRuntimeOnly(project(":odcsim:odcsim-engine-omega")) testImplementation("org.junit.jupiter:junit-jupiter-api:${Library.JUNIT_JUPITER}") diff --git a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt index 2185b372..3603ae69 100644 --- a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt +++ b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt @@ -24,10 +24,13 @@ import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine import kotlinx.coroutines.withContext +import mu.KotlinLogging import kotlin.coroutines.Continuation import kotlin.coroutines.resume import kotlin.math.max +private val logger = KotlinLogging.logger {} + @OptIn(ExperimentalCoroutinesApi::class) class SimpleVirtProvisioningService( public override val allocationPolicy: AllocationPolicy, @@ -141,7 +144,7 @@ class SimpleVirtProvisioningService( unscheduledVms++ incomingImages -= imageInstance - println("[${clock.millis()}] CANNOT SPAWN ${imageInstance.image}") + logger.warn("Failed to spawn ${imageInstance.image}: does not fit [${clock.millis()}]") continue } else { break @@ -149,7 +152,7 @@ class SimpleVirtProvisioningService( } try { - println("[${clock.millis()}] SPAWN ${imageInstance.image} on ${selectedHv.server.uid} ${selectedHv.server.name} ${selectedHv.server.flavor}") + logger.info { "Spawning ${imageInstance.image} on ${selectedHv.server.uid} ${selectedHv.server.name} ${selectedHv.server.flavor}" } incomingImages -= imageInstance // Speculatively update the hypervisor view information to prevent other images in the queue from @@ -174,7 +177,7 @@ class SimpleVirtProvisioningService( when (event) { is ServerEvent.StateChanged -> { if (event.server.state == ServerState.SHUTOFF) { - println("[${clock.millis()}] FINISH ${event.server.uid} ${event.server.name} ${event.server.flavor}") + logger.info { "Server ${event.server.uid} ${event.server.name} ${event.server.flavor} finished." } runningVms-- finishedVms++ @@ -191,13 +194,13 @@ class SimpleVirtProvisioningService( } .launchIn(this) } catch (e: InsufficientMemoryOnServerException) { - println("Unable to deploy image due to insufficient memory") + logger.error("Failed to deploy VM", e) selectedHv.numberOfActiveServers-- selectedHv.provisionedCores -= imageInstance.flavor.cpuCount selectedHv.availableMemory += requiredMemory } catch (e: Throwable) { - e.printStackTrace() + logger.error("Failed to deploy VM", e) } } } |
