Class LoadAverageCircuitBreaker

java.lang.Object
org.apache.solr.util.circuitbreaker.CircuitBreaker
org.apache.solr.util.circuitbreaker.LoadAverageCircuitBreaker
All Implemented Interfaces:
Closeable, AutoCloseable, NamedListInitializedPlugin

public class LoadAverageCircuitBreaker extends CircuitBreaker
Tracks current system load average and triggers if the specified threshold is breached.

This circuit breaker gets the load average (length of the run queue) over the last minute and uses that data to take a decision. We depend on OperatingSystemMXBean which does not allow a configurable interval of collection of data.

This Circuit breaker is dependent on the operating system, and may typically not work on Microsoft Windows.

  • Constructor Details

    • LoadAverageCircuitBreaker

      public LoadAverageCircuitBreaker()
  • Method Details

    • isTripped

      public boolean isTripped()
      Description copied from class: CircuitBreaker
      Check if circuit breaker is tripped.
      Specified by:
      isTripped in class CircuitBreaker
    • getErrorMessage

      public String getErrorMessage()
      Description copied from class: CircuitBreaker
      Get error message when the circuit breaker triggers
      Specified by:
      getErrorMessage in class CircuitBreaker
    • setThreshold

      public LoadAverageCircuitBreaker setThreshold(double thresholdValueUnbounded)
    • getLoadAverageThreshold

      public double getLoadAverageThreshold()
    • calculateLiveLoadAverage

      protected double calculateLiveLoadAverage()
    • toString

      public String toString()
      Overrides:
      toString in class Object