aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
diff options
context:
space:
mode:
authorIvan Topolnak <ivantopo@gmail.com>2013-10-02 19:01:00 -0300
committerIvan Topolnak <ivantopo@gmail.com>2013-10-02 19:01:00 -0300
commit4045ba1274fe6ba51ab071de6e2a5e1b31cef668 (patch)
treee5f1e7f2493b3c624aee824d70f14c383a1e2eac /kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
parente9a4828ae75b19d63090825fa556596e433d2383 (diff)
downloadKamon-4045ba1274fe6ba51ab071de6e2a5e1b31cef668.tar.gz
Kamon-4045ba1274fe6ba51ab071de6e2a5e1b31cef668.tar.bz2
Kamon-4045ba1274fe6ba51ab071de6e2a5e1b31cef668.zip
Switched to DynamicVariables, solve context passing issue produced by runnable batching
Diffstat (limited to 'kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala16
1 files changed, 5 insertions, 11 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
index 6126d642..915f9635 100644
--- a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
+++ b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala
@@ -10,7 +10,7 @@ import scala.Some
import kamon.trace.context.TracingAwareContext
case class TraceableMessage(traceContext: Option[TraceContext], message: Any, timer: Timer.Context)
-case class DefaultTracingAwareEnvelopeContext(traceContext: Option[TraceContext] = Tracer.context(), timestamp: Long = System.nanoTime) extends TracingAwareContext
+case class DefaultTracingAwareEnvelopeContext(traceContext: Option[TraceContext] = Tracer.traceContext.value, timestamp: Long = System.nanoTime) extends TracingAwareContext
@Aspect("perthis(actorCellCreation(akka.actor.ActorSystem, akka.actor.ActorRef, akka.actor.Props, akka.dispatch.MessageDispatcher, akka.actor.ActorRef))")
class ActorCellInvokeInstrumentation {
@@ -24,17 +24,11 @@ class ActorCellInvokeInstrumentation {
@Around("invokingActorBehaviourAtActorCell(envelope)")
def around(pjp: ProceedingJoinPoint, envelope: Envelope): Unit = {
//safe cast
- envelope.asInstanceOf[TracingAwareContext].traceContext match {
- case Some(c) => {
- Tracer.set(c)
- pjp.proceed()
- Tracer.clear
- }
- case None =>
- //assert(Tracer.context() == None)
- pjp.proceed()
+ val msgContext = envelope.asInstanceOf[TracingAwareContext].traceContext
+
+ Tracer.traceContext.withValue(msgContext) {
+ pjp.proceed()
}
- Tracer.clear
}
}