HealthAutoConfiguration

@AutoConfiguration(after = [WowAutoConfiguration::class])
@ConditionalOnClass(name = ["org.springframework.boot.health.contributor.HealthIndicator"])
@ConditionalOnBooleanProperty(name = ["wow.health.enabled"], matchIfMissing = true)
class HealthAutoConfiguration

The node's health in Spring Boot Actuator, when the application has Actuator's health support (spring-boot-starter-actuator), unless wow.health.enabled=false (HealthProperties):

  • a NodeHealth of the node, sampling from the bean's start to its end (it samples nothing while the node does not run);

  • the contributor wow: one indicator per component (node, ownership, stores, topics, subscriptions, executor, liveness), each UP, DEGRADED (Spring Boot's status aggregation leaves it out, so it does not change a group's status) or DOWN, the parts of each in its details; and queries, always UP, each store's query bulkhead (its limit and write pressure), which no probe group reads;

  • wowReadiness, NodeHealth.readiness, and wowLiveness, NodeHealth.liveness, which HealthGroupsEnvironmentPostProcessor adds to Actuator's availability probe groups: /actuator/health/readiness is readinessState and wowReadiness, /actuator/health/liveness is livenessState and wowLiveness; /actuator/health/wow is the wow contributor (a group cannot share its name).

What a response shows beyond the status follows Actuator's own rules (management.endpoint.health.show-details, never by default, and the web exposure): the host exposes no detail on the public port the application did not ask for, and the details hold no message or address, only counts, states and exception class names.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard

Functions

Link copied to clipboard
@Bean(value = ["wowHealthContributor"])
fun wowHealthContributor(health: NodeHealth, queries: ObjectProvider<QueryStores>): HealthContributor

wow: every component of the node's health, and queries, the stores' query bulkheads, when the node queries its stores: always UP, its details each store's limit and write pressure.

Link copied to clipboard
@Bean(value = ["wowLivenessHealthIndicator"])
fun wowLivenessHealthIndicator(health: NodeHealth): HealthIndicator

wowLiveness: whether the node is stuck.

Link copied to clipboard
@Bean(initMethod = "start", destroyMethod = "close")
@ConditionalOnMissingBean
fun wowNodeHealth(node: ServiceNode, properties: WowProperties, sampler: NodeSampler): NodeHealth
Link copied to clipboard
@Bean(value = ["wowReadinessHealthIndicator"])
fun wowReadinessHealthIndicator(health: NodeHealth): HealthIndicator

wowReadiness: whether the node can serve traffic.