Mercurial > hg > blitz_condensed
view src/org/dancres/blitz/stats/StatsBoard.java @ 34:6f68e94c1fb8 default tip
Add CondensedStats monitoring utility, equivalent to vmstat
author | Dominic Cleal <dominic-cleal@cdo2.com> |
---|---|
date | Thu, 05 Aug 2010 11:07:25 +0100 |
parents | 3dc0c5604566 |
children |
line wrap: on
line source
package org.dancres.blitz.stats; import java.util.LinkedList; import java.util.Iterator; import java.util.logging.Logger; import org.dancres.blitz.Logging; /** All available performance statistics are held here. */ public class StatsBoard { static final Logger theLogger = Logging.newLogger("org.dancres.blitz.stats.StatsBoard"); private static StatsBoard theBoard = new StatsBoard(); private LinkedList theStatGenerators = new LinkedList(); private long theNextId = 1; private StatsBoard() { add(new MemoryStat()); add(new HostStat()); add(new ThreadStat()); } public static StatsBoard get() { return theBoard; } public synchronized void add(StatGenerator aStat) { if (! theStatGenerators.contains(aStat)) { if (aStat.getId() == StatGenerator.UNSET_ID) aStat.setId(theNextId++); theStatGenerators.add(aStat); } } public synchronized void remove(StatGenerator aStat) { theStatGenerators.remove(aStat); } public Stat[] getStats() { StatGenerator[] myGenerators; synchronized(this) { myGenerators = new StatGenerator[theStatGenerators.size()]; myGenerators = (StatGenerator[]) theStatGenerators.toArray(myGenerators); } Stat[] myStats = new Stat[myGenerators.length]; for (int i = 0; i < myGenerators.length; i++) { myStats[i] = myGenerators[i].generate(); } return myStats; } }