diff options
Diffstat (limited to 'src/main/scala/akka/MailboxAspect.scala')
-rw-r--r-- | src/main/scala/akka/MailboxAspect.scala | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/src/main/scala/akka/MailboxAspect.scala b/src/main/scala/akka/MailboxAspect.scala index a823d5b9..781ba055 100644 --- a/src/main/scala/akka/MailboxAspect.scala +++ b/src/main/scala/akka/MailboxAspect.scala @@ -1,31 +1,16 @@ package akka import org.aspectj.lang.annotation._ -import scala.concurrent.duration._ -import com.newrelic.api.agent.NewRelic @Aspect("perthis(mailboxMonitor())") -class MailboxAspect extends ActorSystemHolder { +class MailboxAspect { + println("Created MailboxAspect") @Pointcut("execution(akka.dispatch.Mailbox.new(..)) && !within(MailboxAspect)") protected def mailboxMonitor():Unit = {} - @Before("mailboxMonitor() && this(mb)") - def before(mb: akka.dispatch.Mailbox) : Unit = { - actorSystem.scheduler.schedule(5 seconds, 6 second, new Runnable { - def run() { - - val actorName = mb.actor.self.path.toString - - println(s"Sending metrics to Newrelic MailBoxMonitor -> ${actorName}") - - - NewRelic.recordMetric(s"${actorName}:Mailbox:NumberOfMessages",mb.numberOfMessages) - NewRelic.recordMetric(s"${actorName}:Mailbox:MailboxDispatcherThroughput",mb.dispatcher.throughput) - - NewRelic.addCustomParameter(s"${actorName}:Mailbox:Status", mb.hasMessages.toString) - NewRelic.addCustomParameter(s"${actorName}:Mailbox:HasMessages", mb.hasMessages.toString) - } - }) + @After("mailboxMonitor() && this(mb)") + def afterInitialization(mb: akka.dispatch.Mailbox) : Unit = { + Tracer.collectMailBox(mb) } }
\ No newline at end of file |