All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.model.OverallLoadStatistics Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2004-2011 Oracle Corporation.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *
 *    Kohsuke Kawaguchi, Seiji Sogabe, Winston Prakash
 *
 *
 *******************************************************************************/ 

package hudson.model;

import org.eclipse.hudson.graph.ColorPalette;
import org.eclipse.hudson.graph.MultiStageTimeSeries;
import org.eclipse.hudson.graph.MultiStageTimeSeries.TimeScale;
import org.eclipse.hudson.graph.MultiStageTimeSeries.TrendChart;
import org.kohsuke.stapler.export.Exported;

/**
 * {@link LoadStatistics} for the entire system (the master and all the slaves
 * combined.)
 *
 * 

{@link #computeQueueLength()} and {@link #queueLength} counts those tasks * that are unassigned to any node, whereas {@link #totalQueueLength} tracks the * queue length including tasks that are assigned to a specific node. * * @author Kohsuke Kawaguchi * @see Hudson#overallLoad */ public class OverallLoadStatistics extends LoadStatistics { /** * Number of total {@link Queue.BuildableItem}s that represents blocked * builds. */ //TODO: review and check whether we can do it private @Exported public final MultiStageTimeSeries totalQueueLength = new MultiStageTimeSeries( Messages._LoadStatistics_Legends_QueueLength(), ColorPalette.GREY, 0, DECAY); /*package*/ OverallLoadStatistics() { super(0, 0); } public MultiStageTimeSeries getTotalQueueLength() { return totalQueueLength; } @Override public int computeIdleExecutors() { return new ComputerSet().getIdleExecutors(); } @Override public int computeTotalExecutors() { return new ComputerSet().getTotalExecutors(); } @Override public int computeQueueLength() { return Hudson.getInstance().getQueue().countBuildableItemsFor(null); } /** * When drawing the overall load statistics, use the total queue length, not * {@link #queueLength}, which just shows jobs that are to be run on the * master. */ protected TrendChart createOverallTrendChart(TimeScale timeScale) { return MultiStageTimeSeries.createTrendChart(timeScale, busyExecutors, totalExecutors, totalQueueLength); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy