001    /*
002     * ClusterInfo.java
003     *
004     * Created on May 12, 2003, 11:59 AM
005     *
006     * This file is part of the STAR Scheduler.
007     * Copyright (c) 2002-2006 STAR Collaboration - Brookhaven National Laboratory
008     *
009     * STAR Scheduler is free software; you can redistribute it and/or modify
010     * it under the terms of the GNU General Public License as published by
011     * the Free Software Foundation; either version 2 of the License, or
012     * (at your option) any later version.
013     *
014     * STAR Scheduler is distributed in the hope that it will be useful,
015     * but WITHOUT ANY WARRANTY; without even the implied warranty of
016     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
017     * GNU General Public License for more details.
018     *
019     * You should have received a copy of the GNU General Public License
020     * along with STAR Scheduler; if not, write to the Free Software
021     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
022     */
023    
024    package gov.bnl.star.offline.scheduler.monitor;
025    
026    /** Monitoring information about a cluster - such as rcas.rcf.bnl.gov. This 
027     * information can be used in different policies to decide which cluster to
028     * send the jobs.
029     *
030     * @author  Gabriele Carcassi
031     * @author  Efstratios Efstathiadis
032     */
033    public interface ClusterInfo {
034        /** Returns the full name of the cluster. For example, rcas.rcf.bnl.gov */    
035        String getClusterName();
036        /** Cumulative load of the cluster in the past minute. This is the sum of 
037         * the load of all the machines in the cluster*/    
038        double getLoad1m();
039        /** Cumulative load of the cluster in the past five minutes. This is the sum of 
040         * the load of all the machines in the cluster*/    
041        double getLoad5m();
042        /** Number of CPUs in the cluster. A machine with two processors counts 2. */    
043        int getCPUCount();
044        /** Average load of the cluster in the past minute. This equal to cumulative
045         * load divided by CPUCount. */
046        double getAverageLoad1m();
047        /** Average load of the cluster in the past five minutes. This equal to cumulative
048         * load divided by CPUCount. */
049        double getAverageLoad5m();
050    }