For port and http types, because it takes time for the app to go from start until listen at the port or handling the HTTP request, there are two kinds of checks in different phases.
Below are some error messages raised by heathcheck and some suggested solutions:
[CELL/0] ERR Failed after 1m0.772s: readiness health check never passed.
In the error above, it took longer than 60 seconds for the app to start listening or serving a request at the port. To resolve the problem, we suggest the following:
[CELL/0] OUT Container became unhealthyThe error above, is different from the readiness check. Instead, the error above is a regular liveness check failure. The port or http check does not respond within 1 second (invocation timeout), which indicates the app is in an unresponsive state. The invocation timeout is configurable with:
[HEALTH/0] ERR Failed to make TCP connection to port 8080: connection refusedThe error above is a port type health check failure. The app could not respond to a TCP request within one second. Usually it indicates the app instance is at an extremely high CPU or memory pressure, please review app resource usage and workload in order to scale up / out the app accordingly.
[HEALTH/0] ERR Failed to make HTTP request to '/actuator/health' on port 8080: timed out after 1.00 secondsThe error above is a http type health check failure, the app could not respond a HTTP request at /actuator/health within 1 second. http type healthcheck is far slower than TCP check because it engages HTTP handling. The developer could add additional check implementation and a framework could add a backend service check automatically. To resolve this error, we suggest not only reviewing app workload / resource usage, but also reviewing and improving the health check implementation.