diff options
author | Ivan Topolnak <ivantopo@gmail.com> | 2013-11-05 18:38:39 -0300 |
---|---|---|
committer | Ivan Topolnak <ivantopo@gmail.com> | 2013-11-05 18:38:39 -0300 |
commit | 26003feac484c971abf7639dc3adb628c5f118c3 (patch) | |
tree | c22effcf90aea23af6ce23beff4735c7de59131a /kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala | |
parent | 84711adba09c64b75369f8b801819a90198238c6 (diff) | |
download | Kamon-26003feac484c971abf7639dc3adb628c5f118c3.tar.gz Kamon-26003feac484c971abf7639dc3adb628c5f118c3.tar.bz2 Kamon-26003feac484c971abf7639dc3adb628c5f118c3.zip |
basic separation of concerns between sub-projects
Diffstat (limited to 'kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala deleted file mode 100644 index 9b5ce0a4..00000000 --- a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala +++ /dev/null @@ -1,50 +0,0 @@ -package kamon.instrumentation - -import org.aspectj.lang.annotation._ -import org.aspectj.lang.ProceedingJoinPoint -import akka.actor.{Props, ActorSystem, ActorRef} -import kamon.{Tracer} -import akka.dispatch.{Envelope, MessageDispatcher} -import com.codahale.metrics.Timer -import scala.Some -import kamon.trace.context.TracingAwareContext -import kamon.trace.TraceContext - -case class TraceableMessage(traceContext: Option[TraceContext], message: Any, timer: Timer.Context) -case class DefaultTracingAwareEnvelopeContext(traceContext: Option[TraceContext] = Tracer.traceContext.value, timestamp: Long = System.nanoTime) extends TracingAwareContext - -@Aspect -class ActorCellInvokeInstrumentation { - - @Pointcut("execution(akka.actor.ActorCell.new(..)) && args(system, ref, props, dispatcher, parent)") - def actorCellCreation(system: ActorSystem, ref: ActorRef, props: Props, dispatcher: MessageDispatcher, parent: ActorRef): Unit = {} - - @Pointcut("(execution(* akka.actor.ActorCell.invoke(*)) || execution(* akka.routing.RoutedActorCell.sendMessage(*))) && args(envelope)") - def invokingActorBehaviourAtActorCell(envelope: Envelope) = {} - - @Around("invokingActorBehaviourAtActorCell(envelope)") - def around(pjp: ProceedingJoinPoint, envelope: Envelope): Unit = { - //safe cast - val msgContext = envelope.asInstanceOf[TracingAwareContext].traceContext - - Tracer.traceContext.withValue(msgContext) { - pjp.proceed() - } - } -} - -@Aspect -class EnvelopeTracingContext { - - @DeclareMixin("akka.dispatch.Envelope") - def mixin: TracingAwareContext = DefaultTracingAwareEnvelopeContext() - - @Pointcut("execution(akka.dispatch.Envelope.new(..)) && this(ctx)") - def requestRecordInit(ctx: TracingAwareContext): Unit = {} - - @After("requestRecordInit(ctx)") - def whenCreatedRequestRecord(ctx: TracingAwareContext): Unit = { - // Necessary to force the initialization of TracingAwareRequestContext at the moment of creation. - ctx.traceContext - } -} |