Class NodeMonitor

All Implemented Interfaces:
ExtensionPoint, Describable<NodeMonitor>
Direct Known Subclasses:
AbstractDiskSpaceMonitor, ArchitectureMonitor, ClockMonitor, ResponseTimeMonitor, SwapSpaceMonitor

@ExportedBean public abstract class NodeMonitor extends Object implements ExtensionPoint, Describable<NodeMonitor>
Extension point for managing and monitoring Nodes.


Invoked from ComputerSet index.jelly to render a column. The NodeMonitor instance is accessible through the "from" variable. Also see getColumnCaption().
config.jelly (optional)
Configuration fragment to be displayed in http://server/hudson/computer/configure. Used for configuring the threshold for taking nodes offline.


NodeMonitors are persisted via XStream.


To be able to configure NodeMonitors via JCasC, they should have a DataBoundConstructor
Kohsuke Kawaguchi
  • Field Details

  • Constructor Details

    • NodeMonitor

      public NodeMonitor()
  • Method Details

    • getColumnCaption

      @Exported @CheckForNull public String getColumnCaption()
      Returns the name of the column to be added to ComputerSet index.jelly.
      null to not render a column. The convention is to use capitalization like "Foo Bar Zot".
    • getDescriptor

      public AbstractNodeMonitorDescriptor<?> getDescriptor()
      Description copied from interface: Describable
      Gets the descriptor for this instance.

      Descriptor is a singleton for every concrete Describable implementation, so if a.getClass() == b.getClass() then by default a.getDescriptor() == b.getDescriptor() as well. (In rare cases a single implementation class may be used for instances with distinct descriptors.)

      Specified by:
      getDescriptor in interface Describable<NodeMonitor>
    • data

      public Object data(Computer c)
      Obtains the monitoring result currently available, or null if no data is available.
    • triggerUpdate

      public Thread triggerUpdate()
      Starts updating the data asynchronously. If there's any previous updating activity going on, it'll be interrupted and aborted.
      Thread object that carries out the update operation. You can use this to interrupt the execution or waits for the completion. Always non-null
    • getAll

      public static List<NodeMonitor> getAll()
      Obtains all the instances of NodeMonitors that are alive.
    • isIgnored

      public boolean isIgnored()
      True if this monitoring shouldn't mark the agents offline.

      Many NodeMonitors implement a logic that if the value goes above/below a threshold, the agent will be marked offline as a preventive measure. This flag controls that.

      Unlike Publisher, where the absence of an instance indicates that it's disengaged, in NodeMonitor this boolean flag is used to indicate the disengagement, so that monitors work in opt-out basis.

    • setIgnored

      @DataBoundSetter public void setIgnored(boolean ignored)
    • all

      Returns all the registered NodeMonitor descriptors.