Interface HealthCheck


  • @ConsumerType
    public interface HealthCheck

    The Health Check SPI provides a means to check a certain system aspect programmatically. Health checks return a result Result, for most cases it is most convenient to use FormattingResultLog that automatically derives the correct Result.Status from the log messages.

    Clients must not look up health checks directly but rather use the HealthCheckExecutor service and execute checks based on tags (or name).

    If the MBEAN_NAME service registration property is set, the health check is registered as an mbean and can be invoked by getting the MBean from the JMX registry.

    Use the hc.async.* properties for the case a health check is known to be long-running (longer than the timeout as configured in the executor). For regularly triggering one or more health checks, rather configure a HealthCheckMonitor.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ASYNC_CRON_EXPRESSION
      Optional service property: If this property is set the health check will be executed asynchronously using the cron expression provided.
      static java.lang.String ASYNC_INTERVAL_IN_SEC
      Optional service property: If this property is set the health check will be executed asynchronously every n seconds.
      static java.lang.String KEEP_NON_OK_RESULTS_STICKY_FOR_SEC
      Optional service property: If given, non-ok results from past executions will be taken into account as well for the given seconds (use Long.MAX_VALUE for indefinitely).
      static java.lang.String MBEAN_NAME
      Optional service property: the name of the MBean for registering the health check as an MBean.
      static java.lang.String NAME
      Optional service property: the name of a health check.
      static java.lang.String RESULT_CACHE_TTL_IN_MS
      Optional service property: TTL for health check Result.
      static java.lang.String TAGS
      Optional service property: tags for categorizing the health check services.
    • Field Detail

      • NAME

        static final java.lang.String NAME
        Optional service property: the name of a health check. This name should be unique, however there might be more than one health check service with the same value for this property. The value of this property must be of type String.
        See Also:
        Constant Field Values
      • TAGS

        static final java.lang.String TAGS
        Optional service property: tags for categorizing the health check services. The value of this property must be of type String or String array.
        See Also:
        Constant Field Values
      • MBEAN_NAME

        static final java.lang.String MBEAN_NAME
        Optional service property: the name of the MBean for registering the health check as an MBean. If this property is missing the health check is not registered as a JMX MBean. If there is more than one service with the same value for this property, the one with the highest service ranking is registered only. The value of this property must be of type String.
        See Also:
        Constant Field Values
      • ASYNC_CRON_EXPRESSION

        static final java.lang.String ASYNC_CRON_EXPRESSION
        Optional service property: If this property is set the health check will be executed asynchronously using the cron expression provided. Use this for long running health checks to avoid execution every time the tag/name is queried. Prefer configuring a HealthCheckMonitor if you only want to regularly execute a HC.
        See Also:
        Constant Field Values
      • ASYNC_INTERVAL_IN_SEC

        static final java.lang.String ASYNC_INTERVAL_IN_SEC
        Optional service property: If this property is set the health check will be executed asynchronously every n seconds. Use this for long running health checks to avoid execution every time the tag/name is queried. Prefer configuring a HealthCheckMonitor if you only want to regularly execute a HC.
        See Also:
        Constant Field Values
      • RESULT_CACHE_TTL_IN_MS

        static final java.lang.String RESULT_CACHE_TTL_IN_MS
        Optional service property: TTL for health check Result. The value of this property must be of type Long and is specified in ms.
        See Also:
        Constant Field Values
      • KEEP_NON_OK_RESULTS_STICKY_FOR_SEC

        static final java.lang.String KEEP_NON_OK_RESULTS_STICKY_FOR_SEC
        Optional service property: If given, non-ok results from past executions will be taken into account as well for the given seconds (use Long.MAX_VALUE for indefinitely). Useful for unhealthy system states that disappear but might leave the system at an inconsistent state (e.g. an event queue overflow where somebody needs to intervene manually) or for checks that should only go back to OK with a delay (can be useful for load balancers).
        See Also:
        Constant Field Values
    • Method Detail

      • execute

        Result execute()
        Execute this health check.
        Returns:
        a Result.