From 5fa7b099c8ecd9a26999468f3831eed5a87732a0 Mon Sep 17 00:00:00 2001 From: bivashy Date: Fri, 20 Mar 2026 00:02:33 +0500 Subject: [PATCH] Add health check --- pom.xml | 4 ++ .../health/KodikServiceHealthCheck.java | 44 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/main/java/com/backend/unifier/title/service/health/KodikServiceHealthCheck.java diff --git a/pom.xml b/pom.xml index d61359e..593674a 100644 --- a/pom.xml +++ b/pom.xml @@ -86,6 +86,10 @@ ${record-builder.version} provided + + io.quarkus + quarkus-smallrye-health + io.quarkus quarkus-junit diff --git a/src/main/java/com/backend/unifier/title/service/health/KodikServiceHealthCheck.java b/src/main/java/com/backend/unifier/title/service/health/KodikServiceHealthCheck.java new file mode 100644 index 0000000..d33bb1e --- /dev/null +++ b/src/main/java/com/backend/unifier/title/service/health/KodikServiceHealthCheck.java @@ -0,0 +1,44 @@ +package com.backend.unifier.title.service.health; + +import java.time.Instant; + +import org.eclipse.microprofile.health.HealthCheck; +import org.eclipse.microprofile.health.HealthCheckResponse; +import org.eclipse.microprofile.health.HealthCheckResponseBuilder; +import org.eclipse.microprofile.health.Readiness; +import org.eclipse.microprofile.rest.client.inject.RestClient; + +import com.backend.metadata.kodik.service.api.model.KodikResponse; +import com.backend.unifier.title.service.api.KodikSearchService; + +import jakarta.enterprise.context.ApplicationScoped; + +@Readiness +@ApplicationScoped +public class KodikServiceHealthCheck implements HealthCheck { + @RestClient + KodikSearchService kodikService; + + @Override + public HealthCheckResponse call() { + HealthCheckResponseBuilder responseBuilder = HealthCheckResponse.named("Kodik Service Connection"); + + try { + KodikResponse response = kodikService.search("Хеллсинг"); + + return responseBuilder + .up() + .withData("status", "connected") + .withData("timestamp", Instant.now().toString()) + .build(); + + } catch (Exception e) { + return responseBuilder + .down() + .withData("reason", e.getMessage()) + .withData("timestamp", Instant.now().toString()) + .build(); + } + } + +}