All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.lightningkite.lightningserver.serverhealth.HealthStatus.kt Maven / Gradle / Ivy

@file:SharedCode
@file:UseContextualSerialization(Instant::class)
package com.lightningkite.lightningserver.serverhealth

import com.lightningkite.khrysalis.SharedCode
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseContextualSerialization
import java.lang.management.ManagementFactory
import java.net.NetworkInterface
import java.time.Instant

@Serializable
data class HealthStatus(val level: Level, val checkedAt: Instant = Instant.now(), val additionalMessage: String? = null) {
    @Serializable
    enum class Level(val color: String) {
        OK("green"),
        WARNING("yellow"),
        URGENT("orange"),
        ERROR("red")
    }
}

@Serializable
data class ServerHealth(
    val serverId: String,
    val version: String,
    val memory: Memory,
    val features: Map,
    val loadAverageCpu: Double,
) {

    @Serializable
    data class Memory(
        val max: Long,
        val total: Long,
        val free: Long,
        val systemAllocated: Long,
        val usage: Float,
    ) {
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy