Dennis Schröder
05/04/2020, 10:54 AM@Component
class ContentClientHealthIndicator(private val contentJsonClient: ContentJsonClient) : ReactiveHealthIndicator {
private val logger = KotlinLogging.logger { }
private val pagesToCheck = listOf("home")
override fun health(): Mono<Health> =
mono(Dispatchers.Unconfined) {
pagesToCheck.map { contentJsonClient.getPage(it) }
Health.up().build()
}.onErrorResume(Exception::class.java) { exception ->
logger.error(exception) { "ContentClient health check failed" }
Health.down(exception).build().let { Mono.just(it) }
}
}