[feature] add some api, etc..

- add some api
- add /metrics routing
This commit is contained in:
dalbodeule
2025-07-15 21:52:41 +09:00
parent 9e3a79a613
commit 66df771cb7
8 changed files with 143 additions and 4 deletions

View File

@@ -37,6 +37,11 @@ dependencies {
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation("com.google.code.gson:gson:2.11.0")
api("io.micrometer:micrometer-registry-prometheus:1.15.1")
// https://mvnrepository.com/artifact/io.insert-koin/koin-core
api("io.insert-koin:koin-core:4.0.0")
testImplementation(kotlin("test"))
}

View File

@@ -0,0 +1,25 @@
package space.mori.chzzk_bot.common.metrics
import io.micrometer.core.instrument.Gauge
import io.micrometer.prometheusmetrics.PrometheusConfig
import io.micrometer.prometheusmetrics.PrometheusMeterRegistry
import space.mori.chzzk_bot.common.services.UserService
object Metrics {
val registry = PrometheusMeterRegistry(PrometheusConfig.DEFAULT)
var streamer = UserService.getAllUsers().size.toDouble()
val streamerGauge: Gauge = Gauge.builder("streamer_gauge", this) { streamer }
.description("Current All Streamer Count")
.register(registry)
var activeStreamer = UserService.getAllUsers().filter { !it.isDisabled }.size.toDouble()
val activateGauge: Gauge = Gauge.builder("active_streamer_gauge", this) { streamer }
.description("Current Active Streamer Count")
.register(registry)
var streaming: Double = 0.0
val streamingGauge: Gauge = Gauge.builder("streaming_gauge", this) { streaming }
.description("Current Streaming Streamer Count")
.register(registry)
}