Mercurial > hg > blitz_condensed
diff src/org/dancres/blitz/tools/MonitorStats.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 diff
--- a/src/org/dancres/blitz/tools/MonitorStats.java Sat Jun 12 10:52:10 2010 +0100 +++ b/src/org/dancres/blitz/tools/MonitorStats.java Thu Aug 05 11:07:25 2010 +0100 @@ -1,35 +1,17 @@ package org.dancres.blitz.tools; import java.io.IOException; - +import java.rmi.RMISecurityManager; import java.rmi.RemoteException; -import java.rmi.RMISecurityManager; - -import net.jini.discovery.*; - -import net.jini.lookup.*; -import net.jini.lookup.entry.Name; - -import net.jini.core.lookup.ServiceItem; -import net.jini.core.lookup.ServiceTemplate; - -import net.jini.core.entry.Entry; import net.jini.admin.Administrable; - import net.jini.space.JavaSpace; -import net.jini.core.transaction.TransactionException; - -import org.dancres.blitz.remote.BlitzAdmin; - +import org.dancres.blitz.remote.StatsAdmin; +import org.dancres.blitz.stats.Stat; import org.dancres.jini.util.DiscoveryUtil; import org.dancres.jini.util.ServiceLocator; -import org.dancres.blitz.stats.*; - -import org.dancres.blitz.remote.StatsAdmin; - /** <p>MonitorStats accepts a spacename as an argument and a loop time. It then attempts to list all available statistics on the space every loop time @@ -50,6 +32,10 @@ private static final long MAX_DISCOVER_TIME = 15 * 1000; public static void main(String args[]) { + new MonitorStats().startup(args); + } + + void startup(String args[]) { if (System.getSecurityManager() == null) System.setSecurityManager(new RMISecurityManager()); @@ -93,20 +79,7 @@ StatsAdmin myStatsAdmin = (StatsAdmin) myAdminProxy; - if (myTimeout == 0) { - Stat[] myStats = myStatsAdmin.getStats(); - - System.out.println("Snapshot: " + - System.currentTimeMillis()); - for (int i = 0; i < myStats.length; i++) { - System.out.println(myStats[i]); - } - - System.out.println(); - - } else { - new Watcher(myStatsAdmin, myTimeout).start(); - } + getWatcher(myStatsAdmin, myTimeout).run(); } else { System.err.println("No BlitzAdmin interface found - can't be Blitz"); } @@ -129,7 +102,11 @@ } } - static class Watcher extends Thread { + Runnable getWatcher(StatsAdmin anAdmin, long aTimeout) { + return new Watcher(anAdmin, aTimeout); + } + + static class Watcher implements Runnable { private StatsAdmin theAdmin; private long theTimeout; @@ -139,7 +116,7 @@ } public void run() { - while (true) { + do { try { Stat[] myStats = theAdmin.getStats(); @@ -155,7 +132,7 @@ } catch (Exception anE) { System.err.println(anE); } - } + } while (theTimeout > 0); // if timeout == 0, only run once } } }