Author: chirino
Date: Fri Nov  5 22:12:35 2010
New Revision: 1031850

URL: http://svn.apache.org/viewvc?rev=1031850&view=rev
Log:
If hawtdispatch profiling is enabled, then periodically dump it's stats to the 
console.

Modified:
    
activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/Main.scala

Modified: 
activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/Main.scala
URL: 
http://svn.apache.org/viewvc/activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/Main.scala?rev=1031850&r1=1031849&r2=1031850&view=diff
==============================================================================
--- 
activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/Main.scala
 (original)
+++ 
activemq/activemq-apollo/trunk/apollo-web/src/main/scala/org/apache/activemq/apollo/web/Main.scala
 Fri Nov  5 22:12:35 2010
@@ -23,6 +23,7 @@ import org.mortbay.jetty.nio.SelectChann
 import org.mortbay.jetty.webapp.WebAppContext
 import org.apache.commons.logging.LogFactory
 import java.io.File
+import org.fusesource.hawtdispatch.DispatchProfiler
 
 /**
  * <p>
@@ -59,7 +60,35 @@ object Main {
         return
       }
     }
-    
+
+    if(java.lang.Boolean.getBoolean("hawtdispatch.profile")) {
+      new Thread("HawtDispatch Monitor") {
+        setDaemon(true);
+        override def run = {
+          while(true) {
+            Thread.sleep(1000);
+            import collection.JavaConversions._
+
+            // Only display is we see some long wait or run times..
+            val m = DispatchProfiler.metrics.toList.flatMap{x=>
+              if( x.total_wait_time_ns > 1000000 ||  x.total_run_time_ns > 
1000000 ) {
+                Some(x)
+              } else {
+                None
+              }
+            }
+
+            if( !m.isEmpty ) {
+              println("-- hawtdispatch metrics -----------------------")
+              m.foreach{ metric=>
+                println(metric)
+              }
+            }
+          }
+        }
+      }.start();
+    }
+
     println("===========================")
     println("Starting up ActiveMQ Apollo");
     println("===========================")


Reply via email to