activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject svn commit: r420537 - in /incubator/activemq/trunk/tooling/maven-activemq-perf-plugin/src/main/java/org/apache/activemq/tool: reports/ reports/plugins/ sampler/ spi/
Date Mon, 10 Jul 2006 14:19:29 GMT
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);



Mime
View raw message