Author: aco
Date: Mon Jul 10 07:19:28 2006
New Revision: 420537
URL: http://svn.apache.org/viewvc?rev=420537&view=rev
Log:
- Added summary for CPU usage
- Fix compiler error for ActiveMQPojoSPI
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/AbstractPerfReportWriter.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/PerformanceStatisticsUtil.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/VerbosePerfReportWriter.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/XmlFilePerfReportWriter.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/CpuReportPlugin.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ReportPlugin.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ThroughputReportPlugin.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/CpuSamplerTask.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/ThroughputSamplerTask.java
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/spi/ActiveMQPojoSPI.java
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/AbstractPerfReportWriter.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/AbstractPerfReportWriter.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/AbstractPerfReportWriter.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/AbstractPerfReportWriter.java
Mon Jul 10 07:19:28 2006
@@ -23,6 +23,10 @@
import java.util.Map;
public abstract class AbstractPerfReportWriter implements
PerformanceReportWriter {
+
+ public static final int REPORT_PLUGIN_THROUGHPUT = 0;
+ public static final int REPORT_PLUGIN_CPU = 1;
+
protected ReportPlugin[] plugins = new ReportPlugin[] {
new ThroughputReportPlugin(),
new CpuReportPlugin()
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/PerformanceStatisticsUtil.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/PerformanceStatisticsUtil.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/PerformanceStatisticsUtil.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/PerformanceStatisticsUtil.java
Mon Jul 10 07:19:28 2006
@@ -23,67 +23,67 @@
private PerformanceStatisticsUtil() {
}
- public static long getTotalThroughput(List totalTPList) {
- long totalTP = 0;
- if (totalTPList != null) {
- for (Iterator i=totalTPList.iterator(); i.hasNext();) {
- totalTP += ((Long)i.next()).longValue();
+ public static long getSum(List numList) {
+ long sum = 0;
+ if (numList != null) {
+ for (Iterator i=numList.iterator(); i.hasNext();) {
+ sum += ((Long)i.next()).longValue();
}
} else {
- totalTP = -1;
+ sum = -1;
}
- return totalTP;
+ return sum;
}
- public static long getMinThroughput(List totalTPList) {
- long minTP = Long.MAX_VALUE;
- if (totalTPList != null) {
- for (Iterator i=totalTPList.iterator(); i.hasNext();) {
- minTP = Math.min(((Long)i.next()).longValue(), minTP);
+ public static long getMin(List numList) {
+ long min = Long.MAX_VALUE;
+ if (numList != null) {
+ for (Iterator i=numList.iterator(); i.hasNext();) {
+ min = Math.min(((Long)i.next()).longValue(), min);
}
} else {
- minTP = -1;
+ min = -1;
}
- return minTP;
+ return min;
}
- public static long getMaxThroughput(List totalTPList) {
- long maxTP = Long.MIN_VALUE;
- if (totalTPList != null) {
- for (Iterator i=totalTPList.iterator(); i.hasNext();) {
- maxTP = Math.max(((Long)i.next()).longValue(), maxTP);
+ public static long getMax(List numList) {
+ long max = Long.MIN_VALUE;
+ if (numList != null) {
+ for (Iterator i=numList.iterator(); i.hasNext();) {
+ max = Math.max(((Long)i.next()).longValue(), max);
}
} else {
- maxTP = -1;
+ max = -1;
}
- return maxTP;
+ return max;
}
- public static double getAveThroughput(List totalTPList) {
- double aveTP;
- if (totalTPList != null) {
+ public static double getAve(List numList) {
+ double ave;
+ if (numList != null) {
int sampleCount = 0;
long totalTP = 0;
- for (Iterator i=totalTPList.iterator(); i.hasNext();) {
+ for (Iterator i=numList.iterator(); i.hasNext();) {
sampleCount++;
totalTP += ((Long)i.next()).longValue();
}
return (double)totalTP / (double)sampleCount;
} else {
- aveTP = -1;
+ ave = -1;
}
- return aveTP;
+ return ave;
}
- public static double getAveThroughputExcludingMinMax(List totalTPList) {
- double aveTP;
- long minTP = getMinThroughput(totalTPList);
- long maxTP = getMaxThroughput(totalTPList);
- if (totalTPList != null) {
+ public static double getAveEx(List numList) {
+ double ave;
+ long minTP = getMin(numList);
+ long maxTP = getMax(numList);
+ if (numList != null) {
int sampleCount = 0;
long totalTP = 0;
long sampleTP;
- for (Iterator i=totalTPList.iterator(); i.hasNext();) {
+ for (Iterator i=numList.iterator(); i.hasNext();) {
sampleCount++;
sampleTP = ((Long)i.next()).longValue();
if (sampleTP != minTP && sampleTP != maxTP) {
@@ -92,9 +92,9 @@
}
return (double)totalTP / (double)sampleCount;
} else {
- aveTP = -1;
+ ave = -1;
}
- return aveTP;
+ return ave;
}
}
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/VerbosePerfReportWriter.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/VerbosePerfReportWriter.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/VerbosePerfReportWriter.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/VerbosePerfReportWriter.java
Mon Jul 10 07:19:28 2006
@@ -18,6 +18,7 @@
import org.apache.activemq.tool.reports.plugins.ReportPlugin;
import org.apache.activemq.tool.reports.plugins.ThroughputReportPlugin;
+import org.apache.activemq.tool.reports.plugins.CpuReportPlugin;
import java.util.Properties;
import java.util.Iterator;
@@ -40,9 +41,9 @@
}
public void writeCsvData(int csvType, String csvData) {
- if (csvType == ReportPlugin.REPORT_PLUGIN_THROUGHPUT) {
+ if (csvType == REPORT_PLUGIN_THROUGHPUT) {
System.out.println("[PERF-TP]: " + csvData);
- } else if (csvType == ReportPlugin.REPORT_PLUGIN_CPU) {
+ } else if (csvType == REPORT_PLUGIN_CPU) {
System.out.println("[PERF-CPU]: " + csvData);
}
handleCsvData(csvType, csvData);
@@ -62,8 +63,23 @@
}
public void writePerfSummary() {
- Map summary = getSummary(ReportPlugin.REPORT_PLUGIN_THROUGHPUT);
+ Map summary;
+
+ summary = getSummary(REPORT_PLUGIN_THROUGHPUT);
+ if (summary != null && summary.size() > 0) {
+ writeThroughputSummary(summary);
+ }
+
+ summary = getSummary(REPORT_PLUGIN_CPU);
+ if (summary != null && summary.size() > 0) {
+ writeCpuSummary(summary);
+ }
+
+ }
+
+ protected void writeThroughputSummary(Map summary) {
+ writeHeader("SYSTEM THROUGHPUT SUMMARY");
System.out.println("[PERF-TP-SUMMARY] System Total Throughput: " +
summary.get(ThroughputReportPlugin.KEY_SYS_TOTAL_TP));
System.out.println("[PERF-TP-SUMMARY] System Total Clients: " +
summary.get(ThroughputReportPlugin.KEY_SYS_TOTAL_CLIENTS));
System.out.println("[PERF-TP-SUMMARY] System Average Throughput: " +
summary.get(ThroughputReportPlugin.KEY_SYS_AVE_TP));
@@ -78,6 +94,30 @@
System.out.println("[PERF-TP-SUMMARY] Max Client Average Throughput: "
+ summary.get(ThroughputReportPlugin.KEY_MAX_CLIENT_AVE_TP));
System.out.println("[PERF-TP-SUMMARY] Min Client Average Throughput
Excluding Min/Max: " +
summary.get(ThroughputReportPlugin.KEY_MIN_CLIENT_AVE_EMM_TP));
System.out.println("[PERF-TP-SUMMARY] Max Client Average Throughput
Excluding Min/Max: " +
summary.get(ThroughputReportPlugin.KEY_MAX_CLIENT_AVE_EMM_TP));
+ }
+
+ protected void writeCpuSummary(Map summary) {
+ writeHeader("SYSTEM CPU USAGE SUMMARY");
+ System.out.println("[PERF-CPU-SUMMARY] Total Blocks Received: " +
summary.get(CpuReportPlugin.KEY_BLOCK_RECV));
+ System.out.println("[PERF-CPU-SUMMARY] Ave Blocks Received: " +
summary.get(CpuReportPlugin.KEY_AVE_BLOCK_RECV));
+
+ System.out.println("[PERF-CPU-SUMMARY] Total Blocks Sent: " +
summary.get(CpuReportPlugin.KEY_BLOCK_SENT));
+ System.out.println("[PERF-CPU-SUMMARY] Ave Blocks Sent: " +
summary.get(CpuReportPlugin.KEY_AVE_BLOCK_SENT));
+
+ System.out.println("[PERF-CPU-SUMMARY] Total Context Switches: " +
summary.get(CpuReportPlugin.KEY_CTX_SWITCH));
+ System.out.println("[PERF-CPU-SUMMARY] Ave Context Switches: " +
summary.get(CpuReportPlugin.KEY_AVE_CTX_SWITCH));
+
+ System.out.println("[PERF-CPU-SUMMARY] Total User Time: " +
summary.get(CpuReportPlugin.KEY_USER_TIME));
+ System.out.println("[PERF-CPU-SUMMARY] Ave User Time: " +
summary.get(CpuReportPlugin.KEY_AVE_USER_TIME));
+
+ System.out.println("[PERF-CPU-SUMMARY] Total System Time: " +
summary.get(CpuReportPlugin.KEY_SYS_TIME));
+ System.out.println("[PERF-CPU-SUMMARY] Ave System Time: " +
summary.get(CpuReportPlugin.KEY_AVE_SYS_TIME));
+
+ System.out.println("[PERF-CPU-SUMMARY] Total Idle Time: " +
summary.get(CpuReportPlugin.KEY_IDLE_TIME));
+ System.out.println("[PERF-CPU-SUMMARY] Ave Idle Time: " +
summary.get(CpuReportPlugin.KEY_AVE_IDLE_TIME));
+
+ System.out.println("[PERF-CPU-SUMMARY] Total Wait Time: " +
summary.get(CpuReportPlugin.KEY_WAIT_TIME));
+ System.out.println("[PERF-CPU-SUMMARY] Ave Wait Time: " +
summary.get(CpuReportPlugin.KEY_AVE_WAIT_TIME));
}
protected void writeHeader(String header) {
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/XmlFilePerfReportWriter.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/XmlFilePerfReportWriter.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/XmlFilePerfReportWriter.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/XmlFilePerfReportWriter.java
Mon Jul 10 07:19:28 2006
@@ -20,6 +20,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.activemq.tool.reports.plugins.ReportPlugin;
import org.apache.activemq.tool.reports.plugins.ThroughputReportPlugin;
+import org.apache.activemq.tool.reports.plugins.CpuReportPlugin;
import java.util.Properties;
import java.util.List;
@@ -114,9 +115,9 @@
}
public void writeCsvData(int csvType, String csvData) {
- if (csvType == ReportPlugin.REPORT_PLUGIN_THROUGHPUT) {
+ if (csvType == REPORT_PLUGIN_THROUGHPUT) {
tempLogFileWriter.println("[TP-DATA]" + csvData);
- } else if (csvType == ReportPlugin.REPORT_PLUGIN_CPU) {
+ } else if (csvType == REPORT_PLUGIN_CPU) {
tempLogFileWriter.println("[CPU-DATA]" + csvData);
}
}
@@ -198,10 +199,10 @@
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("[TP-DATA]")) {
- handleCsvData(ReportPlugin.REPORT_PLUGIN_THROUGHPUT,
line.substring("[TP-DATA]".length()));
+ handleCsvData(REPORT_PLUGIN_THROUGHPUT,
line.substring("[TP-DATA]".length()));
parsePerfCsvData("tpdata",
line.substring("[TP-DATA]".length()));
} else if (line.startsWith("[CPU-DATA]")) {
- handleCsvData(ReportPlugin.REPORT_PLUGIN_CPU,
line.substring("[CPU-DATA]".length()));
+ handleCsvData(REPORT_PLUGIN_CPU,
line.substring("[CPU-DATA]".length()));
parsePerfCsvData("cpudata",
line.substring("[CPU-DATA]".length()));
} else if (line.startsWith("[INFO]")) {
xmlFileWriter.println("<info>" + line + "</info>");
@@ -215,14 +216,32 @@
}
protected void writeXmlPerfSummary() {
- // Write throughput summary
- Map summary = getSummary(ReportPlugin.REPORT_PLUGIN_THROUGHPUT);
- xmlFileWriter.println("<property name='perfSummary'>");
+ Map summary;
+
+ summary = getSummary(REPORT_PLUGIN_THROUGHPUT);
+ if (summary != null && summary.size() > 0) {
+ writeThroughputSummary(summary);
+ }
+
+ summary = getSummary(REPORT_PLUGIN_CPU);
+ if (summary != null && summary.size() > 0) {
+ writeCpuSummary(summary);
+ }
+
+ }
+
+ protected void writeThroughputSummary(Map summary) {
+ // Write throughput summary
+ xmlFileWriter.println("<property name='perfTpSummary'>");
xmlFileWriter.println("<props>");
String val, clientName, clientVal;
+ System.out.println("#########################################");
+ System.out.println("#### SYSTEM THROUGHPUT SUMMARY ####");
+ System.out.println("#########################################");
+
val = (String)summary.get(ThroughputReportPlugin.KEY_SYS_TOTAL_TP);
System.out.println("System Total Throughput: " + val);
xmlFileWriter.println("<prop key='" +
ThroughputReportPlugin.KEY_SYS_TOTAL_TP + "'>" + val + "</prop>");
@@ -294,6 +313,60 @@
clientVal = val.substring(val.indexOf("=") + 1);
System.out.println("Max Average Client Throughput Excluding Min/Max:
clientName=" + clientName + ", value=" + clientVal);
xmlFileWriter.println("<prop key='" +
ThroughputReportPlugin.KEY_MAX_CLIENT_AVE_EMM_TP + "'>clientName=" + clientName
+ ",value=" + clientVal + "</prop>");
+
+ xmlFileWriter.println("</props>");
+ xmlFileWriter.println("</property>");
+ }
+
+ protected void writeCpuSummary(Map summary) {
+ xmlFileWriter.println("<property name='perfTpSummary'>");
+ xmlFileWriter.println("<props>");
+
+ System.out.println("########################################");
+ System.out.println("#### SYSTEM CPU USAGE SUMMARY ####");
+ System.out.println("########################################");
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_BLOCK_RECV +
"'>" + summary.get(CpuReportPlugin.KEY_BLOCK_RECV) + "</prop>");
+ System.out.println("Total Blocks Received: " +
summary.get(CpuReportPlugin.KEY_BLOCK_RECV));
+
+ xmlFileWriter.println("<prop key='" +
CpuReportPlugin.KEY_AVE_BLOCK_RECV + "'>" +
summary.get(CpuReportPlugin.KEY_AVE_BLOCK_RECV) + "</prop>");
+ System.out.println("Ave Blocks Received: " +
summary.get(CpuReportPlugin.KEY_AVE_BLOCK_RECV));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_BLOCK_SENT +
"'>" + summary.get(CpuReportPlugin.KEY_BLOCK_SENT) + "</prop>");
+ System.out.println("Total Blocks Sent: " +
summary.get(CpuReportPlugin.KEY_BLOCK_SENT));
+
+ xmlFileWriter.println("<prop key='" +
CpuReportPlugin.KEY_AVE_BLOCK_SENT + "'>" +
summary.get(CpuReportPlugin.KEY_AVE_BLOCK_SENT) + "</prop>");
+ System.out.println(" Ave Blocks Sent: " +
summary.get(CpuReportPlugin.KEY_AVE_BLOCK_SENT));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_CTX_SWITCH +
"'>" + summary.get(CpuReportPlugin.KEY_CTX_SWITCH) + "</prop>");
+ System.out.println("Total Context Switches: " +
summary.get(CpuReportPlugin.KEY_CTX_SWITCH));
+
+ xmlFileWriter.println("<prop key='" +
CpuReportPlugin.KEY_AVE_CTX_SWITCH + "'>" +
summary.get(CpuReportPlugin.KEY_AVE_CTX_SWITCH) + "</prop>");
+ System.out.println("Ave Context Switches: " +
summary.get(CpuReportPlugin.KEY_AVE_CTX_SWITCH));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_USER_TIME +
"'>" + summary.get(CpuReportPlugin.KEY_USER_TIME) + "</prop>");
+ System.out.println("Total User Time: " +
summary.get(CpuReportPlugin.KEY_USER_TIME));
+
+ xmlFileWriter.println("<prop key='" +
CpuReportPlugin.KEY_AVE_USER_TIME + "'>" +
summary.get(CpuReportPlugin.KEY_AVE_USER_TIME) + "</prop>");
+ System.out.println("Ave User Time: " +
summary.get(CpuReportPlugin.KEY_AVE_USER_TIME));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_SYS_TIME +
"'>" + summary.get(CpuReportPlugin.KEY_SYS_TIME) + "</prop>");
+ System.out.println("Total System Time: " +
summary.get(CpuReportPlugin.KEY_SYS_TIME));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_AVE_SYS_TIME
+ "'>" + summary.get(CpuReportPlugin.KEY_AVE_SYS_TIME) + "</prop>");
+ System.out.println("Ave System Time: " +
summary.get(CpuReportPlugin.KEY_AVE_SYS_TIME));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_IDLE_TIME +
"'>" + summary.get(CpuReportPlugin.KEY_IDLE_TIME) + "</prop>");
+ System.out.println("Total Idle Time: " +
summary.get(CpuReportPlugin.KEY_IDLE_TIME));
+
+ xmlFileWriter.println("<prop key='" +
CpuReportPlugin.KEY_AVE_IDLE_TIME + "'>" +
summary.get(CpuReportPlugin.KEY_AVE_IDLE_TIME) + "</prop>");
+ System.out.println("Ave Idle Time: " +
summary.get(CpuReportPlugin.KEY_AVE_IDLE_TIME));
+
+ xmlFileWriter.println("<prop key='" + CpuReportPlugin.KEY_WAIT_TIME +
"'>" + summary.get(CpuReportPlugin.KEY_WAIT_TIME) + "</prop>");
+ System.out.println("Total Wait Time: " +
summary.get(CpuReportPlugin.KEY_WAIT_TIME));
+
+ xmlFileWriter.println("<prop key='" +
CpuReportPlugin.KEY_AVE_WAIT_TIME + "'>" +
summary.get(CpuReportPlugin.KEY_AVE_WAIT_TIME) + "</prop>");
+ System.out.println("Ave Wait Time: " +
summary.get(CpuReportPlugin.KEY_AVE_WAIT_TIME));
xmlFileWriter.println("</props>");
xmlFileWriter.println("</property>");
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/CpuReportPlugin.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/CpuReportPlugin.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/CpuReportPlugin.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/CpuReportPlugin.java
Mon Jul 10 07:19:28 2006
@@ -16,14 +16,134 @@
*/
package org.apache.activemq.tool.reports.plugins;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.activemq.tool.reports.PerformanceStatisticsUtil;
+
import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashMap;
public class CpuReportPlugin implements ReportPlugin {
+ private static final Log log = LogFactory.getLog(CpuReportPlugin.class);
+
+ public static final String NAME_BLOCK_RECV = "bi";
+ public static final String NAME_BLOCK_SENT = "bu";
+ public static final String NAME_CTX_SWITCH = "cs";
+ public static final String NAME_USER_TIME = "us";
+ public static final String NAME_SYS_TIME = "sy";
+ public static final String NAME_IDLE_TIME = "id";
+ public static final String NAME_WAIT_TIME = "wa";
+
+ public static final String KEY_BLOCK_RECV = "BlocksReceived";
+ public static final String KEY_BLOCK_SENT = "BlocksSent";
+ public static final String KEY_CTX_SWITCH = "ContextSwitches";
+ public static final String KEY_USER_TIME = "UserTime";
+ public static final String KEY_SYS_TIME = "SystemTime";
+ public static final String KEY_IDLE_TIME = "IdleTime";
+ public static final String KEY_WAIT_TIME = "WaitingTime";
+
+ public static final String KEY_AVE_BLOCK_RECV = "AveBlocksReceived";
+ public static final String KEY_AVE_BLOCK_SENT = "AveBlocksSent";
+ public static final String KEY_AVE_CTX_SWITCH = "AveContextSwitches";
+ public static final String KEY_AVE_USER_TIME = "AveUserTime";
+ public static final String KEY_AVE_SYS_TIME = "AveSystemTime";
+ public static final String KEY_AVE_IDLE_TIME = "AveIdleTime";
+ public static final String KEY_AVE_WAIT_TIME = "AveWaitingTime";
+
+ protected List blockRecv = new ArrayList();
+ protected List blockSent = new ArrayList();
+ protected List ctxSwitch = new ArrayList();
+ protected List userTime = new ArrayList();
+ protected List sysTime = new ArrayList();
+ protected List idleTime = new ArrayList();
+ protected List waitTime = new ArrayList();
+
public void handleCsvData(String csvData) {
- // Do nothing
+ StringTokenizer tokenizer = new StringTokenizer(csvData, ",");
+ String data, key, val;
+ while (tokenizer.hasMoreTokens()) {
+ data = tokenizer.nextToken();
+ key = data.substring(0, data.indexOf("="));
+ val = data.substring(data.indexOf("=") + 1);
+
+ addToCpuList(key, val);
+ }
}
public Map getSummary() {
- return null; // Do nothing
+ long val;
+
+ Map summary = new HashMap();
+
+ if (blockRecv.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(blockRecv);
+ summary.put(KEY_BLOCK_RECV, String.valueOf(val));
+ summary.put(KEY_AVE_BLOCK_RECV, String.valueOf((double)val /
(double)blockRecv.size()));
+ }
+
+ if (blockSent.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(blockSent);
+ summary.put(KEY_BLOCK_SENT, String.valueOf(val));
+ summary.put(KEY_AVE_BLOCK_SENT, String.valueOf((double)val /
(double)blockSent.size()));
+ }
+
+ if (ctxSwitch.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(ctxSwitch);
+ summary.put(KEY_CTX_SWITCH, String.valueOf(val));
+ summary.put(KEY_AVE_CTX_SWITCH, String.valueOf((double)val /
(double)ctxSwitch.size()));
+ }
+
+ if (userTime.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(userTime);
+ summary.put(KEY_USER_TIME, String.valueOf(val));
+ summary.put(KEY_AVE_USER_TIME, String.valueOf((double)val /
(double)userTime.size()));
+ }
+
+ if (sysTime.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(sysTime);
+ summary.put(KEY_SYS_TIME, String.valueOf(val));
+ summary.put(KEY_AVE_SYS_TIME, String.valueOf((double)val /
(double)sysTime.size()));
+ }
+
+ if (idleTime.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(idleTime);
+ summary.put(KEY_IDLE_TIME, String.valueOf(val));
+ summary.put(KEY_AVE_IDLE_TIME, String.valueOf((double)val /
(double)idleTime.size()));
+ }
+
+ if (waitTime.size() > 0) {
+ val = PerformanceStatisticsUtil.getSum(waitTime);
+ summary.put(KEY_WAIT_TIME, String.valueOf(val));
+ summary.put(KEY_AVE_WAIT_TIME, String.valueOf((double)val /
(double)waitTime.size()));
+ }
+
+ if (summary.size() > 0) {
+ return summary;
+ } else {
+ return null;
+ }
+ }
+
+ protected void addToCpuList(String key, String val) {
+ if (key.equals(NAME_BLOCK_RECV)) {
+ blockRecv.add(Long.valueOf(val));
+ } else if (key.equals(NAME_BLOCK_SENT)) {
+ blockSent.add(Long.valueOf(val));
+ } else if (key.equals(NAME_CTX_SWITCH)) {
+ ctxSwitch.add(Long.valueOf(val));
+ } else if (key.equals(NAME_USER_TIME)) {
+ userTime.add(Long.valueOf(val));
+ } else if (key.equals(NAME_SYS_TIME)) {
+ sysTime.add(Long.valueOf(val));
+ } else if (key.equals(NAME_IDLE_TIME)) {
+ idleTime.add(Long.valueOf(val));
+ } else if (key.equals(NAME_WAIT_TIME)) {
+ waitTime.add(Long.valueOf(val));
+ } else {
+ log.warn("Unrecognized CPU data. " + key + "=" + val);
+ }
}
}
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ReportPlugin.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ReportPlugin.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ReportPlugin.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ReportPlugin.java
Mon Jul 10 07:19:28 2006
@@ -19,9 +19,6 @@
import java.util.Map;
public interface ReportPlugin {
- public static final int REPORT_PLUGIN_THROUGHPUT = 0;
- public static final int REPORT_PLUGIN_CPU = 1;
-
public void handleCsvData(String csvData);
public Map getSummary();
}
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ThroughputReportPlugin.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ThroughputReportPlugin.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ThroughputReportPlugin.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/reports/plugins/ThroughputReportPlugin.java
Mon Jul 10 07:19:28 2006
@@ -65,6 +65,11 @@
}
public Map getSummary() {
+ // Check if tp sampler wasn't used.
+ if (clientThroughputs.size() == 0) {
+ return new HashMap();
+ }
+
long minClientTP = Long.MAX_VALUE, // TP = throughput
maxClientTP = Long.MIN_VALUE,
minClientTotalTP = Long.MAX_VALUE,
@@ -98,19 +103,19 @@
clientTPList = (List)clientThroughputs.get(clientName);
clientCount++;
- tempLong =
PerformanceStatisticsUtil.getMinThroughput(clientTPList);
+ tempLong = PerformanceStatisticsUtil.getMin(clientTPList);
if (tempLong < minClientTP) {
minClientTP = tempLong;
nameMinClientTP = clientName;
}
- tempLong =
PerformanceStatisticsUtil.getMaxThroughput(clientTPList);
+ tempLong = PerformanceStatisticsUtil.getMax(clientTPList);
if (tempLong > maxClientTP) {
maxClientTP = tempLong;
nameMaxClientTP = clientName;
}
- tempLong =
PerformanceStatisticsUtil.getTotalThroughput(clientTPList);
+ tempLong = PerformanceStatisticsUtil.getSum(clientTPList);
systemTotalTP += tempLong; // Accumulate total TP
if (tempLong < minClientTotalTP) {
minClientTotalTP = tempLong;
@@ -122,7 +127,7 @@
nameMaxClientTotalTP = clientName;
}
- tempDouble =
PerformanceStatisticsUtil.getAveThroughput(clientTPList);
+ tempDouble = PerformanceStatisticsUtil.getAve(clientTPList);
systemAveTP += tempDouble; // Accumulate ave throughput
if (tempDouble < minClientAveTP) {
minClientAveTP = tempDouble;
@@ -134,7 +139,7 @@
nameMaxClientAveTP = clientName;
}
- tempDouble =
PerformanceStatisticsUtil.getAveThroughputExcludingMinMax(clientTPList);
+ tempDouble = PerformanceStatisticsUtil.getAveEx(clientTPList);
systemAveEMMTP += tempDouble; // Accumulate ave throughput
excluding min/max
if (tempDouble < minClientAveEMMTP) {
minClientAveEMMTP = tempDouble;
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/CpuSamplerTask.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/CpuSamplerTask.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/CpuSamplerTask.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/CpuSamplerTask.java
Mon Jul 10 07:19:28 2006
@@ -3,6 +3,7 @@
import org.apache.activemq.tool.sampler.plugins.CpuSamplerPlugin;
import org.apache.activemq.tool.sampler.plugins.LinuxCpuSamplerPlugin;
import org.apache.activemq.tool.reports.plugins.ReportPlugin;
+import org.apache.activemq.tool.reports.AbstractPerfReportWriter;
import java.io.IOException;
@@ -28,7 +29,7 @@
public void sampleData() {
if (plugin != null && perfReportWriter != null) {
- perfReportWriter.writeCsvData(ReportPlugin.REPORT_PLUGIN_CPU,
"index=" + sampleIndex + "," + plugin.getCpuUtilizationStats());
+
perfReportWriter.writeCsvData(AbstractPerfReportWriter.REPORT_PLUGIN_CPU,
"index=" + sampleIndex + "," + plugin.getCpuUtilizationStats());
}
}
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/ThroughputSamplerTask.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/ThroughputSamplerTask.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/ThroughputSamplerTask.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/sampler/ThroughputSamplerTask.java
Mon Jul 10 07:19:28 2006
@@ -1,6 +1,7 @@
package org.apache.activemq.tool.sampler;
import org.apache.activemq.tool.reports.plugins.ReportPlugin;
+import org.apache.activemq.tool.reports.AbstractPerfReportWriter;
import java.util.ArrayList;
import java.util.Iterator;
@@ -21,7 +22,7 @@
for (Iterator i = clients.iterator(); i.hasNext();) {
MeasurableClient client = (MeasurableClient) i.next();
if (perfReportWriter != null) {
-
perfReportWriter.writeCsvData(ReportPlugin.REPORT_PLUGIN_THROUGHPUT,
+
perfReportWriter.writeCsvData(AbstractPerfReportWriter.REPORT_PLUGIN_THROUGHPUT,
"index=" + sampleIndex + ",clientName=" +
client.getClientName() +
",throughput=" + client.getThroughput());
}
Modified:
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/spi/ActiveMQPojoSPI.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/spi/ActiveMQPojoSPI.java?rev=420537&r1=420536&r2=420537&view=diff
==============================================================================
---
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/spi/ActiveMQPojoSPI.java
(original)
+++
incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool/spi/ActiveMQPojoSPI.java
Mon Jul 10 07:19:28 2006
@@ -78,7 +78,7 @@
setting = settings.getProperty(KEY_ASYNC_DISPATCH);
if (setting != null && setting.length() > 0) {
- factory.setAsyncDispatch(Boolean.getBoolean(setting));
+ factory.setDispatchAsync(Boolean.getBoolean(setting));
}
setting = settings.getProperty(KEY_ASYNC_SESSION);