annotate src/org/dancres/blitz/tools/CondensedStats.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
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
1 package org.dancres.blitz.tools;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
2
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
3 import java.io.PrintStream;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
4 import java.rmi.RemoteException;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
5 import java.util.ArrayList;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
6 import java.util.Collection;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
7 import java.util.Formatter;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
8
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
9 import org.dancres.blitz.remote.StatsAdmin;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
10 import org.dancres.blitz.stats.BlockingOpsStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
11 import org.dancres.blitz.stats.EventQueueStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
12 import org.dancres.blitz.stats.IOStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
13 import org.dancres.blitz.stats.InstanceCount;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
14 import org.dancres.blitz.stats.MemoryStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
15 import org.dancres.blitz.stats.MissedOpsStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
16 import org.dancres.blitz.stats.OpStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
17 import org.dancres.blitz.stats.Stat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
18 import org.dancres.blitz.stats.TaskQueueStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
19 import org.dancres.blitz.stats.ThreadStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
20 import org.dancres.blitz.stats.TxnStat;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
21
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
22 /**
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
23 <p>CondensedStats accepts a spacename as an argument and a loop time. It
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
24 then regularly prints a condensed view of some important space stats every
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
25 loop time seconds. Specifying a loop time of 0 will cause MonitorStats to
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
26 dump stats once and exit.</p>
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
27
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
28 <p>Typical usage:
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
29
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
30 <pre>
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
31 java -Xmx256m -Djava.security.policy=config/policy.all
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
32 -classpath /home/dan/jini/jini2_0/lib/jsk-platform.jar:/home/dan/src/jini/space/build:/home/dan/jini/jini2_0/lib/jini-ext.jar:/home/dan/jini/jini2_0/lib/sun-util.jar
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
33 org.dancres.blitz.tools.CondensedStats dancres 20
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
34 </pre>
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
35
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
36 @see org.dancres.blitz.remote.BlitzAdmin
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
37 */
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
38 public class CondensedStats extends MonitorStats {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
39 public static void main(String args[]) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
40 new CondensedStats().startup(args);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
41 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
42
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
43 @Override
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
44 Runnable getWatcher(StatsAdmin anAdmin, long aTimeout)
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
45 {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
46 return new CondensedWatcher(anAdmin, aTimeout);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
47 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
48
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
49 /**
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
50 * Provides a vmstat-style one line repeating summary of Blitz statistics.
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
51 * Includes operation counts, active txns/ops, listeners and queue stats,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
52 * writer I/O and VM stats.
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
53 */
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
54 static class CondensedWatcher implements Runnable {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
55 private StatsAdmin theAdmin;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
56 private long theTimeout;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
57 private Stat[] theLastStats;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
58
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
59 CondensedWatcher(StatsAdmin anAdmin, long aTimeout) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
60 theAdmin = anAdmin;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
61 theTimeout = aTimeout;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
62 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
63
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
64 public void run() {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
65 boolean run = true;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
66 while (run) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
67 try {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
68 // if timeout is 0, run once over a 1 second period
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
69 if (theTimeout == 0) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
70 run = false;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
71 theTimeout = 1000;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
72 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
73
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
74 printHeader(System.out);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
75
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
76 theLastStats = theAdmin.getStats();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
77
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
78 for (int i = 0;; i++) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
79 Thread.sleep(theTimeout);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
80
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
81 print(System.out, (int)theTimeout / 1000);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
82 if ((i + 1) % 48 == 0)
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
83 printHeader(System.out);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
84 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
85 } catch (Exception anE) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
86 System.err.println(anE);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
87 anE.printStackTrace();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
88 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
89 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
90 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
91
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
92 public void printHeader(PrintStream out) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
93 out.println("-----ops---- " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
94 " missed " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
95 "obj " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
96 "---active-- " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
97 "listeners " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
98 "---queues-- " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
99 "------io----- " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
100 "-----vm-----");
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
101
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
102 out.println(" r t w " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
103 " r t " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
104 "+/- " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
105 "txn r t " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
106 " tr pt " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
107 "evt rem oth " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
108 " i/o qsz thr " +
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
109 "thrd mem max");
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
110 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
111
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
112 public void print(PrintStream out, int interval) throws RemoteException {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
113 Stat[] last = theLastStats;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
114 Stat[] stats = theAdmin.getStats();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
115
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
116 // Operation count since last iteration
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
117 long opReads = getOpCount(stats, OpStat.READS) -
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
118 getOpCount(last, OpStat.READS);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
119 long opTakes = getOpCount(stats, OpStat.TAKES) -
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
120 getOpCount(last, OpStat.TAKES);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
121 long opWrites = (getOpCount(stats, OpStat.WRITES) -
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
122 getOpCount(last, OpStat.WRITES)) / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
123
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
124 // Missed operations, not available until first operation
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
125 long missReads = 0, missTakes = 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
126 MissedOpsStat missedStat = getStatistic(stats, MissedOpsStat.class);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
127 MissedOpsStat missedLast = getStatistic(stats, MissedOpsStat.class);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
128
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
129 if (missedStat != null && missedLast != null) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
130 missReads = (missedStat.getMissedReads() - missedLast.getMissedReads())
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
131 / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
132 missTakes = (missedStat.getMissedTakes() - missedLast.getMissedTakes())
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
133 / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
134 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
135
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
136 // Change op counts to include misses
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
137 opReads = (opReads + missReads) / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
138 opTakes = (opTakes + missTakes) / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
139
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
140 // Overall instance count
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
141 long instances = (getInstanceCount(stats) - getInstanceCount(last))
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
142 / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
143
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
144 // Active operations/txns
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
145 int activeTxn = getStatistic(stats, TxnStat.class).getActiveTxnCount();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
146
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
147 // Not available until after first space operation
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
148 int activeRead = 0, activeTake = 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
149 BlockingOpsStat blockedOps = getStatistic(stats, BlockingOpsStat.class);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
150 if (blockedOps != null) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
151 activeRead = blockedOps.getReaders();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
152 activeTake = blockedOps.getTakers();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
153 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
154
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
155 // Notify listeners
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
156 int listenTrans = getStatistic(stats, EventQueueStat.class).getTransientCount();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
157 int listenPers = getStatistic(stats, EventQueueStat.class).getPersistentCount();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
158
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
159 // Queues, internal notify queue, remote notify queue and other tasks
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
160 int queueEvents = getTaskQueue(stats, "Events");
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
161 int queueRemote = getTaskQueue(stats, "RemoteEvent");
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
162 int queueOther = getTaskQueue(stats, "DefaultTask");
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
163
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
164 // Writer I/O if persistent storage model in use
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
165 double ioRatio = 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
166 int ioQueueSize = 0, ioThrottle = 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
167
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
168 IOStat myIoStat = getStatistic(stats, IOStat.class);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
169 if (myIoStat != null) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
170 ioRatio = myIoStat.getInOutRatio();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
171 ioQueueSize = getStatistic(stats, IOStat.class).getQueueSize();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
172 ioThrottle = (getStatistic(stats, IOStat.class).getThrottleCount() -
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
173 getStatistic(last, IOStat.class).getThrottleCount())
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
174 / interval;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
175 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
176
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
177 // Virtual machine
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
178 int vmThreads = getStatistic(stats, ThreadStat.class).getThreadCount();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
179
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
180 double vmMemory = getStatistic(stats, MemoryStat.class).getCurrentMemory();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
181 vmMemory = vmMemory / 1024 / 1024 / 1024;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
182
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
183 double vmMaxMem = getStatistic(stats, MemoryStat.class).getMaxMemory();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
184 vmMaxMem = vmMaxMem / 1024 / 1024 / 1024;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
185
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
186 // r t w$ r w$ +/-$txn r t$ tr pt
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
187 String formatString = "%4d %3d %3d %4d %3d %5d %4d %3d %3d %5d %4d ";
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
188 // evt rem oth$i/o qsz thr$thrd mem max
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
189 formatString += "%4d %3d %3d %5.1f %4d %3d %5d %3.1f %3.1f";
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
190
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
191 String line = new Formatter().format(formatString,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
192 opReads, opTakes, opWrites,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
193 missReads, missTakes, instances,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
194 activeTxn, activeRead, activeTake,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
195 listenTrans, listenPers,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
196 queueEvents, queueRemote, queueOther,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
197 ioRatio, ioQueueSize, ioThrottle,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
198 vmThreads, vmMemory, vmMaxMem).toString();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
199
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
200 out.println(line);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
201
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
202 theLastStats = stats;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
203 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
204
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
205 private <T extends Stat> Collection<T> getStatistics(Stat[] allStats,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
206 Class<T> statClazz) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
207 Collection<T> ret = new ArrayList<T>();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
208 for (Stat stat : allStats)
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
209 if (statClazz.isInstance(stat))
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
210 ret.add(statClazz.cast(stat));
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
211
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
212 return ret;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
213 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
214
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
215 private <T extends Stat> T getStatistic(Stat[] allStats,
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
216 Class<T> statClazz) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
217 Collection<T> subset = getStatistics(allStats, statClazz);
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
218 return (subset.isEmpty()) ? null : subset.iterator().next();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
219 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
220
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
221 /** Adds up operations across all entry types.
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
222 * @param opType OpStat.TAKES/READS/WRITES
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
223 */
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
224 private long getOpCount(Stat[] stats, int opType) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
225 long count = 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
226 for (OpStat ops : getStatistics(stats, OpStat.class))
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
227 if (ops.getOp() == opType)
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
228 count += ops.getCount();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
229
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
230 return count;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
231 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
232
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
233 /** Adds up instance counts across all entry types. */
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
234 private long getInstanceCount(Stat[] stats) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
235 long count = 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
236 for (InstanceCount ops : getStatistics(stats, InstanceCount.class))
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
237 count += ops.getCount();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
238
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
239 return count;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
240 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
241
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
242 /** Gets size of a task queue with a particular task name */
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
243 private int getTaskQueue(Stat[] stats, String taskName) {
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
244 for (TaskQueueStat ops : getStatistics(stats, TaskQueueStat.class))
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
245 if (taskName.equals(ops.getQueueName()))
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
246 return ops.getQueueSize();
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
247
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
248 return 0;
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
249 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
250 }
6f68e94c1fb8 Add CondensedStats monitoring utility, equivalent to vmstat
Dominic Cleal <dominic-cleal@cdo2.com>
parents:
diff changeset
251 }