1 package de.dlr.shepard.common.healthz;
2
3 import jakarta.enterprise.context.ApplicationScoped;
4 import jakarta.inject.Inject;
5 import jakarta.persistence.EntityManager;
6 import org.eclipse.microprofile.health.HealthCheck;
7 import org.eclipse.microprofile.health.HealthCheckResponse;
8 import org.eclipse.microprofile.health.Readiness;
9
10 @Readiness
11 @ApplicationScoped
12 public class TimescaleDBHealthCheck implements HealthCheck {
13
14 @Inject
15 EntityManager entityManager;
16
17 @Override
18 public HealthCheckResponse call() {
19 try {
20 entityManager.createNativeQuery("SELECT 1").getSingleResult();
21 return HealthCheckResponse.up("TimescaleDB connection health check");
22 } catch (Exception e) {
23 return HealthCheckResponse.down("TimescaleDB connection health check");
24 }
25 }
26 }