diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2013-11-23 21:30:34 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2013-11-23 21:30:34 -0300 |
commit | 6ba7487204e0339437c7279e6330fc03419a2c5c (patch) | |
tree | eda414d575a20d4000d04f3f06207b6843919ca7 /kamon-trace/src/main/scala/kamon | |
parent | 741ac431e7b156c782f5f02a29a17686912cb590 (diff) | |
download | Kamon-6ba7487204e0339437c7279e6330fc03419a2c5c.tar.gz Kamon-6ba7487204e0339437c7279e6330fc03419a2c5c.tar.bz2 Kamon-6ba7487204e0339437c7279e6330fc03419a2c5c.zip |
Put FutureTracing instrumentation in place, simpler and more explicit test
Diffstat (limited to 'kamon-trace/src/main/scala/kamon')
-rw-r--r-- | kamon-trace/src/main/scala/kamon/trace/Trace.scala | 2 | ||||
-rw-r--r-- | kamon-trace/src/main/scala/kamon/trace/instrumentation/FutureTracing.scala (renamed from kamon-trace/src/main/scala/kamon/trace/instrumentation/RunnableTracing.scala) | 14 |
2 files changed, 6 insertions, 10 deletions
diff --git a/kamon-trace/src/main/scala/kamon/trace/Trace.scala b/kamon-trace/src/main/scala/kamon/trace/Trace.scala index 0ef438d4..fbd4ea8b 100644 --- a/kamon-trace/src/main/scala/kamon/trace/Trace.scala +++ b/kamon-trace/src/main/scala/kamon/trace/Trace.scala @@ -35,6 +35,8 @@ object Trace extends ExtensionId[TraceExtension] with ExtensionIdProvider { ctx } + def withValue[T](ctx: Option[TraceContext])(thunk: => T): T = traceContext.withValue(ctx)(thunk) + def transformContext(f: TraceContext => TraceContext): Unit = { context.map(f).foreach(set(_)) } diff --git a/kamon-trace/src/main/scala/kamon/trace/instrumentation/RunnableTracing.scala b/kamon-trace/src/main/scala/kamon/trace/instrumentation/FutureTracing.scala index 5c16a648..10daa2da 100644 --- a/kamon-trace/src/main/scala/kamon/trace/instrumentation/RunnableTracing.scala +++ b/kamon-trace/src/main/scala/kamon/trace/instrumentation/FutureTracing.scala @@ -5,7 +5,7 @@ import org.aspectj.lang.ProceedingJoinPoint import kamon.trace.{ContextAware, TraceContext, Trace} @Aspect -class RunnableTracing { +class FutureTracing { /** * These are the Runnables that need to be instrumented and make the TraceContext available @@ -15,16 +15,11 @@ class RunnableTracing { def onCompleteCallbacksRunnable: ContextAware = ContextAware.default - /** - * Pointcuts - */ - @Pointcut("execution(kamon.trace.ContextAware+.new(..)) && this(runnable)") def instrumentedRunnableCreation(runnable: ContextAware): Unit = {} @Pointcut("execution(* kamon.trace.ContextAware+.run()) && this(runnable)") - def runnableExecution(runnable: ContextAware) = {} - + def futureRunnableExecution(runnable: ContextAware) = {} @After("instrumentedRunnableCreation(runnable)") @@ -33,12 +28,11 @@ class RunnableTracing { runnable.traceContext } - - @Around("runnableExecution(runnable)") + @Around("futureRunnableExecution(runnable)") def around(pjp: ProceedingJoinPoint, runnable: ContextAware): Any = { import pjp._ - Trace.traceContext.withValue(runnable.traceContext) { + Trace.withValue(runnable.traceContext) { proceed() } } |