feat: add cameleer3-server startup connectivity check
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
package net.siegeln.cameleer.saas.observability;
|
||||||
|
|
||||||
|
import net.siegeln.cameleer.saas.runtime.RuntimeConfig;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.client.RestClient;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class ConnectivityHealthCheck {
|
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(ConnectivityHealthCheck.class);
|
||||||
|
|
||||||
|
private final RuntimeConfig runtimeConfig;
|
||||||
|
|
||||||
|
public ConnectivityHealthCheck(RuntimeConfig runtimeConfig) {
|
||||||
|
this.runtimeConfig = runtimeConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
|
public void verifyConnectivity() {
|
||||||
|
checkCameleer3Server();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkCameleer3Server() {
|
||||||
|
try {
|
||||||
|
var client = RestClient.builder()
|
||||||
|
.baseUrl(runtimeConfig.getCameleer3ServerEndpoint())
|
||||||
|
.build();
|
||||||
|
var response = client.get()
|
||||||
|
.uri("/actuator/health")
|
||||||
|
.retrieve()
|
||||||
|
.toBodilessEntity();
|
||||||
|
if (response.getStatusCode().is2xxSuccessful()) {
|
||||||
|
log.info("cameleer3-server connectivity: OK ({})",
|
||||||
|
runtimeConfig.getCameleer3ServerEndpoint());
|
||||||
|
} else {
|
||||||
|
log.warn("cameleer3-server connectivity: HTTP {} ({})",
|
||||||
|
response.getStatusCode(), runtimeConfig.getCameleer3ServerEndpoint());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("cameleer3-server connectivity: FAILED ({}) - {}",
|
||||||
|
runtimeConfig.getCameleer3ServerEndpoint(), e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user