Have you considered exposing the state of health indicators as metrics? E.g. health gauge with tag the name of the component and a value that matches the state (e.g. 1 for up, 0 for down, -1 for unknown). By doing so, we would get a history of the application's health in the time series DB (and do alerting there). Readiness and liveness are queried on a regular basis so the value will be up to date. Health however is up to the monitoring system. We intend to schedule health update task in the application and then do alerting on the metrics and not by calling actuator health.
It is easy enough to do that in user code, e.g by AOP intercepting the health methods for all health indicators.
I have also seen people exposing a dynamic metric per health indicator that executes the health indicator when its value is being queried - effectively making prometheus (or any pull based metrics system) trigger the health checks on a regular basis. This is a bit inflexible because metrics tend to get fetched pretty often and some health checks might be too heavy to compute multiple times per minute.
Comment From: wilkinsona
This is a duplicate of https://github.com/spring-projects/spring-boot/issues/14087. I've labelled that issue so that we can consider it again. @dimovelev Please feel free to comment on #14087.