aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/instrumentation
diff options
context:
space:
mode:
authorDiego <diegolparra@gmail.com>2014-12-17 14:19:23 -0300
committerDiego <diegolparra@gmail.com>2014-12-17 14:19:23 -0300
commitef0efc23b3b408a11fb52c77366bcd10ba66327a (patch)
tree4ad97f5de827b108eff3aa1d6e6c2ef961a65ae2 /kamon-core/src/main/scala/kamon/instrumentation
parent049b2822c569b4ea0b0c4c073631bdc0a340264d (diff)
downloadKamon-ef0efc23b3b408a11fb52c77366bcd10ba66327a.tar.gz
Kamon-ef0efc23b3b408a11fb52c77366bcd10ba66327a.tar.bz2
Kamon-ef0efc23b3b408a11fb52c77366bcd10ba66327a.zip
= core: avoid unnecesary allocation when askPatternTimeoutWarning is off
Diffstat (limited to 'kamon-core/src/main/scala/kamon/instrumentation')
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/akka/AskPatternInstrumentation.scala23
1 files changed, 12 insertions, 11 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/akka/AskPatternInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/akka/AskPatternInstrumentation.scala
index efce169d..93b53764 100644
--- a/kamon-core/src/main/scala/kamon/instrumentation/akka/AskPatternInstrumentation.scala
+++ b/kamon-core/src/main/scala/kamon/instrumentation/akka/AskPatternInstrumentation.scala
@@ -17,7 +17,8 @@
package akka.kamon.instrumentation
import kamon.Kamon
-import kamon.trace.{ Trace, TraceContextAware }
+import kamon.extension.akka.Akka
+import kamon.trace.TraceContextAware
import akka.actor.{ ActorSystem, ActorRef }
import akka.event.Logging.Warning
import akka.pattern.AskTimeoutException
@@ -41,17 +42,18 @@ class AskPatternInstrumentation {
@Around("askableActorRefAsk(ctx, actor)")
def hookAskTimeoutWarning(pjp: ProceedingJoinPoint, ctx: TraceContextAware, actor: ActorRef): AnyRef = {
implicit val system = ctx.traceContext.system
- val traceExtension = Kamon(Trace)(system)
+ val akkaExtension = Kamon(Akka)(system)
val future = pjp.proceed().asInstanceOf[Future[AnyRef]]
- val handler = traceExtension.askPatternTracing match {
- case "off" ⇒ errorHandler()
- case "lightweight" ⇒ errorHandler(callInfo = Some(CallInfo(s"${actor.path.name} ?", pjp.getSourceLocation)))
- case "heavyweight" ⇒ errorHandler(stack = Some(new StackTraceCaptureException))
+ val handler = akkaExtension.askPatternTimeoutWarning match {
+ case "off" ⇒ None
+ case "lightweight" ⇒ Some(errorHandler(callInfo = Some(CallInfo(s"${actor.path.name} ?", pjp.getSourceLocation))))
+ case "heavyweight" ⇒ Some(errorHandler(stack = Some(new StackTraceCaptureException)))
}
- future.onFailure(handler)(traceExtension.defaultDispatcher)
+ handler.map(h ⇒ future.onFailure(h)(akkaExtension.dispatcher))
+
future
}
@@ -64,10 +66,9 @@ class AskPatternInstrumentation {
publish(message)
}
- def publish(message: Option[String])(implicit system: ActorSystem) = message map {
- msg ⇒
- system.eventStream.publish(Warning("AskPatternTracing", classOf[AskPatternInstrumentation],
- s"Timeout triggered for ask pattern registered at: $msg"))
+ def publish(message: Option[String])(implicit system: ActorSystem) = message map { msg ⇒
+ system.eventStream.publish(Warning("AskPatternTracing", classOf[AskPatternInstrumentation],
+ s"Timeout triggered for ask pattern registered at: $msg"))
}
}