Skip to content

Commit 9b65623

Browse files
committed
Move metrics endpoint to separate server on :9090
1 parent 44ffc9e commit 9b65623

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

src/main/kotlin/me/snoty/backend/config/Config.kt

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package me.snoty.backend.config
33
data class Config(
44
val database: DatabaseConfig,
55
val port: Short = 8080,
6+
val prometheusPort: Short = 9090,
67
val publicHost: String,
78
val environment: Environment,
89
val authentication: OidcConfig

src/main/kotlin/me/snoty/backend/server/KtorServer.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class KtorServer(
3636
}
3737

3838
private fun Application.module() {
39-
configureMonitoring(metricsRegistry)
39+
configureMonitoring(config, metricsRegistry)
4040
configureHTTP()
4141
configureSecurity(config)
4242
configureSerialization()

src/main/kotlin/me/snoty/backend/server/plugins/Monitoring.kt

+10-5
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,20 @@ package me.snoty.backend.server.plugins
22

33
import io.ktor.http.*
44
import io.ktor.server.application.*
5+
import io.ktor.server.engine.*
56
import io.ktor.server.metrics.micrometer.*
7+
import io.ktor.server.netty.*
68
import io.ktor.server.plugins.callid.*
79
import io.ktor.server.plugins.callloging.*
810
import io.ktor.server.request.*
911
import io.ktor.server.response.*
1012
import io.ktor.server.routing.*
1113
import io.micrometer.core.instrument.MeterRegistry
1214
import io.micrometer.prometheus.PrometheusMeterRegistry
15+
import me.snoty.backend.config.Config
1316
import org.slf4j.event.Level
1417

15-
fun Application.configureMonitoring(meterRegistry: MeterRegistry) {
18+
fun Application.configureMonitoring(config: Config, meterRegistry: MeterRegistry) {
1619
install(MicrometerMetrics) {
1720
registry = meterRegistry
1821
}
@@ -30,10 +33,12 @@ fun Application.configureMonitoring(meterRegistry: MeterRegistry) {
3033
generate(10)
3134
}
3235
if (meterRegistry is PrometheusMeterRegistry) {
33-
routing {
34-
get("/metrics") {
35-
call.respond(meterRegistry.scrape())
36+
embeddedServer(Netty, port = config.prometheusPort.toInt()) {
37+
routing {
38+
get("/metrics") {
39+
call.respond(meterRegistry.scrape())
40+
}
3641
}
37-
}
42+
}.start(wait = false)
3843
}
3944
}

0 commit comments

Comments
 (0)