diff options
author | Diego Parra <diegolparra@gmail.com> | 2013-09-19 08:58:34 -0300 |
---|---|---|
committer | Diego Parra <diegolparra@gmail.com> | 2013-10-01 17:52:28 -0300 |
commit | 5ffb3a50be348237fda9a8176b508284c59261af (patch) | |
tree | 0d83e1d25bf4a7c2fbff67dc53316954d7706171 /kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala | |
parent | fdd4b8817a57c94f7228c5ad6a8028f5aa7a21e4 (diff) | |
download | Kamon-5ffb3a50be348237fda9a8176b508284c59261af.tar.gz Kamon-5ffb3a50be348237fda9a8176b508284c59261af.tar.bz2 Kamon-5ffb3a50be348237fda9a8176b508284c59261af.zip |
Envelope Instrumentation and some cleanup
Diffstat (limited to 'kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala index 4eafcebe..0299c4c5 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala +++ b/kamon-core/src/main/scala/kamon/instrumentation/SprayServerInstrumentation.scala @@ -2,11 +2,12 @@ package kamon.instrumentation import org.aspectj.lang.annotation.{DeclareMixin, After, Pointcut, Aspect} import kamon.{TraceContext, Tracer} -import kamon.trace.UowTracing.{WebExternal, Finish, Rename} +import kamon.trace.UowTracing.{Finish, Rename} import spray.http.HttpRequest import spray.can.server.{OpenRequest, OpenRequestComponent} -import spray.can.client.HttpHostConnector.RequestContext -import spray.http.HttpHeaders.Host +import kamon.trace.context.TracingAwareContext + +//import spray.can.client.HttpHostConnector.RequestContext trait ContextAware { def traceContext: Option[TraceContext] @@ -41,59 +42,44 @@ class SprayServerInstrumentation { @After("openRequestCreation()") def afterFinishingRequest(): Unit = { - //println("Finishing a request: " + Tracer.context()) +// println("Finishing a request: " + Tracer.context()) Tracer.context().map(_.entries ! Finish()) -/* + if(Tracer.context().isEmpty) { println("WOOOOOPAAAAAAAAA") - }*/ + } } - - - @Pointcut("execution(spray.can.client.HttpHostConnector.RequestContext.new(..)) && this(ctx)") - def requestRecordInit(ctx: TracingAwareRequestContext): Unit = {} + def requestRecordInit(ctx: TracingAwareContext): Unit = {} @After("requestRecordInit(ctx)") - def whenCreatedRequestRecord(ctx: TracingAwareRequestContext): Unit = { + def whenCreatedRequestRecord(ctx: TracingAwareContext): Unit = { // Necessary to force the initialization of TracingAwareRequestContext at the moment of creation. - ctx.context + ctx.traceContext } - - - - - @Pointcut("execution(* spray.can.client.HttpHostConnectionSlot.dispatchToCommander(..)) && args(ctx, msg)") - def requestRecordInit2(ctx: TracingAwareRequestContext, msg: Any): Unit = {} + def requestRecordInit2(ctx: TracingAwareContext, msg: Any): Unit = {} @After("requestRecordInit2(ctx, msg)") - def whenCreatedRequestRecord2(ctx: TracingAwareRequestContext, msg: Any): Unit = { + def whenCreatedRequestRecord2(ctx: TracingAwareContext, msg: Any): Unit = { //println("=======> Spent in WEB External: " + (System.nanoTime() - ctx.timestamp)) // TODO: REMOVE THIS: - val request = (ctx.asInstanceOf[RequestContext]).request +// val request = (ctx.asInstanceOf[RequestContext]).request - ctx.context.map(_.entries ! WebExternal(ctx.timestamp, System.nanoTime(), request.header[Host].map(_.host).getOrElse("UNKNOWN"))) +// ctx.context.map(_.entries ! WebExternal(ctx.timestamp, System.nanoTime(), request.header[Host].map(_.host).getOrElse("UNKNOWN"))) } } -trait TracingAwareRequestContext { - def context: Option[TraceContext] - def timestamp: Long -} - -case class DefaultTracingAwareRequestContext(context: Option[TraceContext] = Tracer.context(), - timestamp: Long = System.nanoTime) extends TracingAwareRequestContext - +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: TracingAwareRequestContext = DefaultTracingAwareRequestContext() + def mixin: TracingAwareContext = DefaultTracingAwareRequestContext() }
\ No newline at end of file |