aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/akka/MailboxAspect.scala
diff options
context:
space:
mode:
authorDiego Parra <diegolparra@gmail.com>2013-05-05 20:33:28 -0300
committerDiego Parra <diegolparra@gmail.com>2013-05-05 20:33:28 -0300
commit2f81f03742860a0a57cebeea6f0160f3c0d80a48 (patch)
tree2715ea8499f8245d31976ff2450c47da3cf64f4c /src/main/scala/akka/MailboxAspect.scala
parent2caece9ef7574406c548b4a1f333de4c9579b3a2 (diff)
downloadKamon-2f81f03742860a0a57cebeea6f0160f3c0d80a48.tar.gz
Kamon-2f81f03742860a0a57cebeea6f0160f3c0d80a48.tar.bz2
Kamon-2f81f03742860a0a57cebeea6f0160f3c0d80a48.zip
added Mailbox, PoolMonitor and ActorSystem Aspects and fix newRelicReporter
Diffstat (limited to 'src/main/scala/akka/MailboxAspect.scala')
-rw-r--r--src/main/scala/akka/MailboxAspect.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/scala/akka/MailboxAspect.scala b/src/main/scala/akka/MailboxAspect.scala
new file mode 100644
index 00000000..3dfc9c6a
--- /dev/null
+++ b/src/main/scala/akka/MailboxAspect.scala
@@ -0,0 +1,26 @@
+package akka
+
+import org.aspectj.lang.annotation.{Pointcut, Before, Aspect}
+import java.util.concurrent.{TimeUnit, Executors}
+
+@Aspect
+class MailboxAspect {
+
+ @Pointcut("execution(akka.dispatch.Mailbox.new(..))")
+ protected def mailboxMonitor:Unit = {}
+
+ @Before("mailboxMonitor() && this(mb)")
+ def before(mb: akka.dispatch.Mailbox) : Unit = {
+ val scheduler = Executors.newScheduledThreadPool(1);
+
+ scheduler.scheduleAtFixedRate(new Runnable {
+ def run() {
+ println("Mailbox: " + mb.actor.self.path)
+ println("NOM: " + mb.numberOfMessages)
+ println("Messages: " + mb.hasMessages)
+ print("Dispatcher throughput: " + mb.dispatcher.throughput)
+ println(mb.dispatcher.id)
+ }
+ }, 6, 4, TimeUnit.SECONDS)
+ }
+}