Class LowResourceMonitor

All Implemented Interfaces:
Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle

@ManagedObject("Monitor for low resource conditions and activate a low resource mode if detected") public class LowResourceMonitor extends ContainerLifeCycle
A monitor for low resources, low resources can be detected by:
  • Field Details

    • _server

      protected final Server _server
  • Constructor Details

    • LowResourceMonitor

      public LowResourceMonitor(@Name("server") Server server)
  • Method Details

    • getMonitorThreads

      @ManagedAttribute("True if low available threads status is monitored") public boolean getMonitorThreads()
    • setMonitorThreads

      public void setMonitorThreads(boolean monitorThreads)
      Parameters:
      monitorThreads - If true, check connectors executors to see if they are ThreadPool instances that are low on threads.
    • getReasons

      @ManagedAttribute("The reasons the monitored connectors are low on resources") public String getReasons()
    • setReasons

      protected void setReasons(String reasons)
    • isLowOnResources

      @ManagedAttribute("Are the monitored connectors low on resources?") public boolean isLowOnResources()
    • enableLowOnResources

      protected boolean enableLowOnResources(boolean expectedValue, boolean newValue)
    • getLowResourcesReasons

      @ManagedAttribute("The reason(s) the monitored connectors are low on resources") public String getLowResourcesReasons()
    • setLowResourcesReasons

      protected void setLowResourcesReasons(String reasons)
    • getLowResourcesStarted

      @ManagedAttribute("Get the timestamp in ms since epoch that low resources state started") public long getLowResourcesStarted()
    • setLowResourcesStarted

      public void setLowResourcesStarted(long lowStarted)
    • getMonitoredConnectors

      @ManagedAttribute("The monitored connectors. If null then all server connectors are monitored") public Collection<Connector> getMonitoredConnectors()
    • setMonitoredConnectors

      public void setMonitoredConnectors(Collection<Connector> monitoredConnectors)
      Parameters:
      monitoredConnectors - The collections of Connectors that should be monitored for low resources.
    • getMonitoredOrServerConnectors

      protected Connector[] getMonitoredOrServerConnectors()
    • isAcceptingInLowResources

      @ManagedAttribute("If false, new connections are not accepted while in low resources") public boolean isAcceptingInLowResources()
    • setAcceptingInLowResources

      public void setAcceptingInLowResources(boolean acceptingInLowResources)
    • getPeriod

      @ManagedAttribute("The monitor period in ms") public int getPeriod()
    • setPeriod

      public void setPeriod(int periodMS)
      Parameters:
      periodMS - The period in ms to monitor for low resources
    • getLowResourcesIdleTimeout

      @ManagedAttribute("The idletimeout in ms to apply to all existing connections when low resources is detected") public int getLowResourcesIdleTimeout()
    • setLowResourcesIdleTimeout

      public void setLowResourcesIdleTimeout(int lowResourcesIdleTimeoutMS)
      Parameters:
      lowResourcesIdleTimeoutMS - The timeout in ms to apply to EndPoints when in the low resources state.
    • getMaxLowResourcesTime

      @ManagedAttribute("The maximum time in ms that low resources condition can persist before lowResourcesIdleTimeout is applied to new connections as well as existing connections") public int getMaxLowResourcesTime()
    • setMaxLowResourcesTime

      public void setMaxLowResourcesTime(int maxLowResourcesTimeMS)
      Parameters:
      maxLowResourcesTimeMS - The time in milliseconds that a low resource state can persist before the low resource idle timeout is reapplied to all connections
    • getMaxMemory

      @ManagedAttribute("The maximum memory (in bytes) that can be used before low resources is triggered. Memory used is calculated as (totalMemory-freeMemory).") public long getMaxMemory()
    • setMaxMemory

      public void setMaxMemory(long maxMemoryBytes)
      Parameters:
      maxMemoryBytes - The maximum memory in bytes in use before low resources is triggered.
    • getLowResourceChecks

      public Set<LowResourceMonitor.LowResourceCheck> getLowResourceChecks()
    • setLowResourceChecks

      public void setLowResourceChecks(Set<LowResourceMonitor.LowResourceCheck> lowResourceChecks)
    • addLowResourceCheck

      public void addLowResourceCheck(LowResourceMonitor.LowResourceCheck lowResourceCheck)
    • monitor

      protected void monitor()
    • doStart

      protected void doStart() throws Exception
      Description copied from class: ContainerLifeCycle
      Starts the managed lifecycle beans in the order they were added.
      Overrides:
      doStart in class ContainerLifeCycle
      Throws:
      AbstractLifeCycle.StopException - If thrown, the lifecycle will immediately be stopped.
      Exception - If there was a problem starting. Will cause a transition to FAILED state
    • doStop

      protected void doStop() throws Exception
      Description copied from class: ContainerLifeCycle
      Stops the managed lifecycle beans in the reverse order they were added.
      Overrides:
      doStop in class ContainerLifeCycle
      Throws:
      Exception - If there was a problem stopping. Will cause a transition to FAILED state
    • setLowResources

      protected void setLowResources()
    • clearLowResources

      protected void clearLowResources()
    • low

      protected String low(String reasons, String newReason)