From 227c2dfe6cb8b7e175ad72285dfdfbd15672be24 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Wed, 30 Oct 2013 09:04:25 -0300 Subject: move things all over the place --- .../instrumentation/ActorInstrumentation.scala | 3 +- .../ActorLoggingInstrumentation.scala | 3 +- .../ActorRefTellInstrumentation.scala | 3 +- .../instrumentation/RunnableInstrumentation.scala | 3 +- .../SprayServerInstrumentation.scala | 115 --------------------- 5 files changed, 8 insertions(+), 119 deletions(-) delete mode 100644 kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala (limited to 'kamon-core/src/main/scala/kamon/instrumentation') diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala index 4e47c2a4..4e078201 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala +++ b/kamon-core/src/main/scala/kamon/instrumentation/ActorInstrumentation.scala @@ -2,8 +2,9 @@ package kamon.instrumentation import akka.actor.{Props, ActorSystem, ActorRef} import akka.dispatch.{MessageDispatcher, Envelope} -import kamon.{Tracer, TraceContext} +import kamon.{Tracer} import kamon.instrumentation.SimpleContextPassingInstrumentation.SimpleTraceMessage +import kamon.trace.TraceContext trait ActorInstrumentationConfiguration { def sendMessageTransformation(from: ActorRef, to: ActorRef, message: Any): Any diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala index 47d1756f..9b53bd5d 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala +++ b/kamon-core/src/main/scala/kamon/instrumentation/ActorLoggingInstrumentation.scala @@ -1,9 +1,10 @@ package kamon.instrumentation import org.aspectj.lang.annotation.{Around, Pointcut, DeclareMixin, Aspect} -import kamon.{Tracer, TraceContext} +import kamon.{Tracer} import org.aspectj.lang.ProceedingJoinPoint import org.slf4j.MDC +import kamon.trace.TraceContext @Aspect class ActorLoggingInstrumentation { diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala index 7b5d5339..9b5ce0a4 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala +++ b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala @@ -3,11 +3,12 @@ package kamon.instrumentation import org.aspectj.lang.annotation._ import org.aspectj.lang.ProceedingJoinPoint import akka.actor.{Props, ActorSystem, ActorRef} -import kamon.{Tracer, TraceContext} +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 diff --git a/kamon-core/src/main/scala/kamon/instrumentation/RunnableInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/RunnableInstrumentation.scala index 992cfa82..2be6e5d1 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/RunnableInstrumentation.scala +++ b/kamon-core/src/main/scala/kamon/instrumentation/RunnableInstrumentation.scala @@ -1,9 +1,10 @@ package kamon.instrumentation import org.aspectj.lang.annotation._ -import kamon.{Tracer, TraceContext} +import kamon.{Tracer} import org.aspectj.lang.ProceedingJoinPoint import scala.Some +import kamon.trace.TraceContext /** * Marker interface, just to make sure we don't instrument all the Runnables in the classpath. diff --git a/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala deleted file mode 100644 index 2239f382..00000000 --- a/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala +++ /dev/null @@ -1,115 +0,0 @@ -package kamon.instrumentation - -import org.aspectj.lang.annotation._ -import kamon.{TraceContext, Tracer} -import kamon.trace.UowTracing._ -import kamon.trace.context.TracingAwareContext -import org.aspectj.lang.ProceedingJoinPoint -import spray.http.HttpRequest -import kamon.trace.UowTracing.Finish -import kamon.trace.UowTracing.Rename -import spray.http.HttpHeaders.Host - -//import spray.can.client.HttpHostConnector.RequestContext - -trait ContextAware { - def traceContext: Option[TraceContext] -} - -trait TimedContextAware { - def timestamp: Long - def traceContext: Option[TraceContext] -} - -@Aspect -class SprayOpenRequestContextTracing { - @DeclareMixin("spray.can.server.OpenRequestComponent.DefaultOpenRequest") - def mixinContextAwareToOpenRequest: ContextAware = new ContextAware { - val traceContext: Option[TraceContext] = Tracer.traceContext.value - } - - @DeclareMixin("spray.can.client.HttpHostConnector.RequestContext") - def mixinContextAwareToRequestContext: TimedContextAware = new TimedContextAware { - val timestamp: Long = System.nanoTime() - val traceContext: Option[TraceContext] = Tracer.traceContext.value - } -} - -@Aspect -class SprayServerInstrumentation { - - @Pointcut("execution(spray.can.server.OpenRequestComponent$DefaultOpenRequest.new(..)) && this(openRequest) && args(*, request, *, *)") - def openRequestInit(openRequest: ContextAware, request: HttpRequest): Unit = {} - - @After("openRequestInit(openRequest, request)") - def afterInit(openRequest: ContextAware, request: HttpRequest): Unit = { - Tracer.start - openRequest.traceContext - - Tracer.context().map(_.tracer ! Rename(request.uri.path.toString())) - } - - @Pointcut("execution(* spray.can.server.OpenRequestComponent$DefaultOpenRequest.handleResponseEndAndReturnNextOpenRequest(..)) && target(openRequest)") - def openRequestCreation(openRequest: ContextAware): Unit = {} - - @After("openRequestCreation(openRequest)") - def afterFinishingRequest(openRequest: ContextAware): Unit = { - val original = openRequest.traceContext - Tracer.context().map(_.tracer ! Finish()) - - if(Tracer.context() != original) { - println(s"OMG DIFFERENT Original: [${original}] - Came in: [${Tracer.context}]") - } - } - - @Pointcut("execution(spray.can.client.HttpHostConnector.RequestContext.new(..)) && this(ctx) && args(request, *, *, *)") - def requestRecordInit(ctx: TimedContextAware, request: HttpRequest): Unit = {} - - @After("requestRecordInit(ctx, request)") - def whenCreatedRequestRecord(ctx: TimedContextAware, request: HttpRequest): Unit = { - // Necessary to force the initialization of TracingAwareRequestContext at the moment of creation. - for{ - tctx <- ctx.traceContext - host <- request.header[Host] - } tctx.tracer ! WebExternalStart(ctx.timestamp, host.host) - } - - - - @Pointcut("execution(* spray.can.client.HttpHostConnectionSlot.dispatchToCommander(..)) && args(requestContext, message)") - def dispatchToCommander(requestContext: TimedContextAware, message: Any): Unit = {} - - @Around("dispatchToCommander(requestContext, message)") - def aroundDispatchToCommander(pjp: ProceedingJoinPoint, requestContext: TimedContextAware, message: Any) = { - println("Completing the request with context: " + requestContext.traceContext) - - Tracer.traceContext.withValue(requestContext.traceContext) { - requestContext.traceContext.map { - tctx => tctx.tracer ! WebExternalFinish(requestContext.timestamp) - } - pjp.proceed() - } - - } - - - @Pointcut("execution(* spray.can.client.HttpHostConnector.RequestContext.copy(..)) && this(old)") - def copyingRequestContext(old: TimedContextAware): Unit = {} - - @Around("copyingRequestContext(old)") - def aroundCopyingRequestContext(pjp: ProceedingJoinPoint, old: TimedContextAware) = { - println("Instrumenting the request context copy.") - Tracer.traceContext.withValue(old.traceContext) { - pjp.proceed() - } - } -} - -case class DefaultTracingAwareRequestContext(traceContext: Option[TraceContext] = Tracer.context(), timestamp: Long = System.nanoTime) extends TracingAwareContext - -@Aspect -class SprayRequestContextTracing { - - @DeclareMixin("spray.can.client.HttpHostConnector.RequestContext") - def mixin: TracingAwareContext = DefaultTracingAwareRequestContext() -} \ No newline at end of file -- cgit v1.2.3