Package hudson.model
Class LoadStatistics
- java.lang.Object
-
- hudson.model.LoadStatistics
-
- Direct Known Subclasses:
OverallLoadStatistics,UnlabeledLoadStatistics
@ExportedBean public abstract class LoadStatistics extends Object
Utilization statistics for a node or a set of nodes.Implementation Note
Instances of this class is not capable of updating the statistics itself — instead, it's done by the
LoadStatistics.LoadStatisticsUpdatertimer. This is more efficient (as it allows us a single pass to update all stats), but it's not clear to me if the loss of autonomy is worth it.- Author:
- Kohsuke Kawaguchi
- See Also:
Label.loadStatistics,Jenkins.overallLoad,Jenkins.unlabeledLoad
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLoadStatistics.LoadStatisticsSnapshotHolds a snapshot of the current statistics.static classLoadStatistics.LoadStatisticsUpdaterPeriodically update the load statistics average.
-
Field Summary
Fields Modifier and Type Field Description MultiStageTimeSeriesavailableExecutorsNumber of executors not executing and available to take work and how it changes over time.MultiStageTimeSeriesbusyExecutorsNumber of busy executors and how it changes over time.static intCLOCKLoad statistics clock cycle in milliseconds.MultiStageTimeSeriesconnectingExecutorsNumber of executors in the process of coming on-line and how it changes over time.static floatDECAYWith 0.90 decay ratio for every 10sec, half reduction is about 1 min.MultiStageTimeSeriesdefinedExecutorsNumber of executors defined for Jenkins and how it changes over time.MultiStageTimeSeriesidleExecutorsNumber of executors not executing and how it changes over time.MultiStageTimeSeriesonlineExecutorsNumber of executors on-line and how it changes over time.MultiStageTimeSeriesqueueLengthNumber ofQueue.BuildableItems that can run on any node in this node set but blocked.MultiStageTimeSeriestotalExecutorsDeprecated.useonlineExecutors.
-
Constructor Summary
Constructors Modifier Constructor Description protectedLoadStatistics(int initialOnlineExecutors, int initialBusyExecutors)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description abstract intcomputeIdleExecutors()Deprecated.abstract intcomputeQueueLength()Deprecated.LoadStatistics.LoadStatisticsSnapshotcomputeSnapshot()Computes a self-consistent snapshot of the load statistics.protected LoadStatistics.LoadStatisticsSnapshotcomputeSnapshot(Iterable<Queue.BuildableItem> queue)Computes the self-consistent snapshot with the specified queue items.abstract intcomputeTotalExecutors()Deprecated.protected voidconfigureRenderer(org.jfree.chart.renderer.category.LineAndShapeRenderer renderer)org.jfree.chart.JFreeChartcreateChart(org.jfree.data.category.CategoryDataset ds)Creates a trend chart.MultiStageTimeSeries.TrendChartcreateTrendChart(MultiStageTimeSeries.TimeScale timeScale)CreatesCategoryDatasetwhich then becomes the basis of the load statistics graph.MultiStageTimeSeries.TrendChartdoGraph(String type)Generates the load statistics graph.ApigetApi()floatgetLatestIdleExecutors(MultiStageTimeSeries.TimeScale timeScale)Deprecated.useidleExecutorsdirectly.protected abstract Iterable<Node>getNodes()Returns theNodeinstances that this statistic counts.protected abstract booleanmatches(Queue.Item item, SubTask subTask)protected voidupdateCounts(LoadStatistics.LoadStatisticsSnapshot current)Updates all the series from the current snapshot.protected voidupdateExecutorCounts()Deprecated.
-
-
-
Field Detail
-
definedExecutors
@Exported public final MultiStageTimeSeries definedExecutors
Number of executors defined for Jenkins and how it changes over time.- Since:
- 1.607
-
onlineExecutors
@Exported public final MultiStageTimeSeries onlineExecutors
Number of executors on-line and how it changes over time. ReplacestotalExecutors- Since:
- 1.607
-
connectingExecutors
@Exported public final MultiStageTimeSeries connectingExecutors
Number of executors in the process of coming on-line and how it changes over time.- Since:
- 1.607
-
busyExecutors
@Exported public final MultiStageTimeSeries busyExecutors
Number of busy executors and how it changes over time.
-
idleExecutors
@Exported public final MultiStageTimeSeries idleExecutors
Number of executors not executing and how it changes over time. Note the these executors may not be able to take work, seeavailableExecutors.- Since:
- 1.607
-
availableExecutors
@Exported public final MultiStageTimeSeries availableExecutors
Number of executors not executing and available to take work and how it changes over time.- Since:
- 1.607
-
totalExecutors
@Exported @Deprecated public final MultiStageTimeSeries totalExecutors
Deprecated.useonlineExecutors. NotetotalExecutors==onlineExecutorsfor backward compatibility support.Number of total executors and how it changes over time.
-
queueLength
@Exported public final MultiStageTimeSeries queueLength
Number ofQueue.BuildableItems that can run on any node in this node set but blocked.
-
DECAY
public static final float DECAY
With 0.90 decay ratio for every 10sec, half reduction is about 1 min. Put differently, the half reduction time isCLOCK*log(0.5)/log(DECAY)
-
CLOCK
public static int CLOCK
Load statistics clock cycle in milliseconds. Specify a small value for quickly debugging this feature and node provisioning through cloud.
-
-
Method Detail
-
getLatestIdleExecutors
@Deprecated public float getLatestIdleExecutors(MultiStageTimeSeries.TimeScale timeScale)
Deprecated.useidleExecutorsdirectly.
-
computeIdleExecutors
@Deprecated public abstract int computeIdleExecutors()
Deprecated.Computes the # of idle executors right now and obtains the snapshot value.
-
computeTotalExecutors
@Deprecated public abstract int computeTotalExecutors()
Deprecated.Computes the # of total executors right now and obtains the snapshot value.
-
computeQueueLength
@Deprecated public abstract int computeQueueLength()
Deprecated.Computes the # of queue length right now and obtains the snapshot value.
-
createChart
public org.jfree.chart.JFreeChart createChart(org.jfree.data.category.CategoryDataset ds)
Creates a trend chart.
-
configureRenderer
protected void configureRenderer(org.jfree.chart.renderer.category.LineAndShapeRenderer renderer)
-
createTrendChart
public MultiStageTimeSeries.TrendChart createTrendChart(MultiStageTimeSeries.TimeScale timeScale)
CreatesCategoryDatasetwhich then becomes the basis of the load statistics graph.
-
doGraph
public MultiStageTimeSeries.TrendChart doGraph(@QueryParameter String type) throws IOException
Generates the load statistics graph.- Throws:
IOException
-
getApi
public Api getApi()
-
updateExecutorCounts
@Deprecated protected void updateExecutorCounts()
Deprecated.
-
updateCounts
protected void updateCounts(LoadStatistics.LoadStatisticsSnapshot current)
Updates all the series from the current snapshot.- Parameters:
current- the current snapshot.- Since:
- 1.607
-
getNodes
protected abstract Iterable<Node> getNodes()
Returns theNodeinstances that this statistic counts.- Returns:
- the
Node - Since:
- 1.607
-
matches
protected abstract boolean matches(Queue.Item item, SubTask subTask)
- Parameters:
item- theQueue.Itemthat thebelongs tosubTask- theSubTask- Returns:
trueIFF the specifiedSubTaskfrom theQueueshould be counted.- Since:
- 1.607
-
computeSnapshot
public LoadStatistics.LoadStatisticsSnapshot computeSnapshot()
Computes a self-consistent snapshot of the load statistics. Note: The original method of computing load statistics would compute the total and idle counts independently which could lead to counting errors while jobs started in between the different state counting operations. By returning aLoadStatistics.LoadStatisticsSnapshotwe get a single consistent view of the counts which was valid for at least one point in time during the execution of this method.- Returns:
- a self-consistent snapshot of the load statistics.
- Since:
- 1.607
-
computeSnapshot
protected LoadStatistics.LoadStatisticsSnapshot computeSnapshot(Iterable<Queue.BuildableItem> queue)
Computes the self-consistent snapshot with the specified queue items.- Parameters:
queue- the queue items.- Returns:
- a self-consistent snapshot of the load statistics.
- Since:
- 1.607
-
-