File tree 3 files changed +12
-6
lines changed
src/main/kotlin/me/snoty/backend
3 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ package me.snoty.backend.config
3
3
data class Config (
4
4
val database : DatabaseConfig ,
5
5
val port : Short = 8080 ,
6
+ val prometheusPort : Short = 9090 ,
6
7
val publicHost : String ,
7
8
val environment : Environment ,
8
9
val authentication : OidcConfig
Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ class KtorServer(
36
36
}
37
37
38
38
private fun Application.module () {
39
- configureMonitoring(metricsRegistry)
39
+ configureMonitoring(config, metricsRegistry)
40
40
configureHTTP()
41
41
configureSecurity(config)
42
42
configureSerialization()
Original file line number Diff line number Diff line change @@ -2,17 +2,20 @@ package me.snoty.backend.server.plugins
2
2
3
3
import io.ktor.http.*
4
4
import io.ktor.server.application.*
5
+ import io.ktor.server.engine.*
5
6
import io.ktor.server.metrics.micrometer.*
7
+ import io.ktor.server.netty.*
6
8
import io.ktor.server.plugins.callid.*
7
9
import io.ktor.server.plugins.callloging.*
8
10
import io.ktor.server.request.*
9
11
import io.ktor.server.response.*
10
12
import io.ktor.server.routing.*
11
13
import io.micrometer.core.instrument.MeterRegistry
12
14
import io.micrometer.prometheus.PrometheusMeterRegistry
15
+ import me.snoty.backend.config.Config
13
16
import org.slf4j.event.Level
14
17
15
- fun Application.configureMonitoring (meterRegistry : MeterRegistry ) {
18
+ fun Application.configureMonitoring (config : Config , meterRegistry : MeterRegistry ) {
16
19
install(MicrometerMetrics ) {
17
20
registry = meterRegistry
18
21
}
@@ -30,10 +33,12 @@ fun Application.configureMonitoring(meterRegistry: MeterRegistry) {
30
33
generate(10 )
31
34
}
32
35
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
+ }
36
41
}
37
- }
42
+ }.start(wait = false )
38
43
}
39
44
}
You can’t perform that action at this time.
0 commit comments