Navigate to start
directory to begin.
Create the InventoryStartupCheck
class.
inventory/src/main/java/io/openliberty/guides/inventory/InventoryStartupCheck.java
InventoryStartupCheck.java
A health check for startup allows applications to define startup probes that verify whether deployed application is fully initialized before the liveness probe takes over. This check is useful for applications that require additional startup time on their first initialization. The @Startup
annotation must be applied on a HealthCheck implementation to define a startup check procedure. Otherwise, this annotation is ignored. This startup check verifies that the cpu usage is below 95%. If more than 95% of the cpu is used, a status of DOWN
is returned.
Create the InventoryLivenessCheck
class.
inventory/src/main/java/io/openliberty/guides/inventory/InventoryLivenessCheck.java
InventoryLivenessCheck.java
A health check for liveness allows third party services to determine whether the application is running. If this procedure fails, the application can be stopped. The @Liveness
annotation must be applied on a HealthCheck implementation to define a Liveness check procedure. Otherwise, this annotation is ignored. This liveness check verifies that the heap memory usage is below 90% of the maximum memory. If more than 90% of the maximum memory is used, a status of DOWN
is returned.
The inventory
microservice is healthy only when the system
microservice is available. To add this check to the /health/ready
endpoint, create a class that is annotated with the @Readiness
annotation and implements the HealthCheck
interface. A Health Check for readiness allows third party services to know whether the application is ready to process requests. The @Readiness
annotation must be applied on a HealthCheck implementation to define a readiness check procedure. Otherwise, this annotation is ignored.
Create the InventoryReadinessCheck
class.
inventory/src/main/java/io/openliberty/guides/inventory/InventoryReadinessCheck.java
InventoryReadinessCheck.java
This health check verifies that the system
microservice is available at http://system-service:9090/
. The system-service
host name is accessible only from inside the cluster; you can’t access it yourself. If it’s available, then it returns an UP
status. Similarly, if it’s unavailable then it returns a DOWN
status. When the status is DOWN
, the microservice is considered to be unhealthy.
The health checks for the system
microservice were already been implemented. The system
microservice was set up to become unhealthy for 60 seconds when a specific endpoint is called. This endpoint has been provided for you to observe the results of an unhealthy pod and how Kubernetes reacts.