aboutsummaryrefslogtreecommitdiff
path: root/kamon-core
diff options
context:
space:
mode:
authorCarlos Ferreyra <crypticmind@gmail.com>2014-06-25 01:32:17 -0300
committerCarlos Ferreyra <cferreyra@despegar.com>2014-07-03 12:38:42 -0300
commit69dbbb558737f482a1003fe35b19da7e8bd35309 (patch)
tree6da06c38e63410c194b57c25f9a7d055c819a7d1 /kamon-core
parent4d5803e579e223c4f4f5cb37ab79ca069a007949 (diff)
downloadKamon-69dbbb558737f482a1003fe35b19da7e8bd35309.tar.gz
Kamon-69dbbb558737f482a1003fe35b19da7e8bd35309.tar.bz2
Kamon-69dbbb558737f482a1003fe35b19da7e8bd35309.zip
= core: Inline variant of withTraceContext using macros.
Diffstat (limited to 'kamon-core')
-rw-r--r--kamon-core/src/main/scala/kamon/instrumentation/FutureTracing.scala4
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala5
2 files changed, 7 insertions, 2 deletions
diff --git a/kamon-core/src/main/scala/kamon/instrumentation/FutureTracing.scala b/kamon-core/src/main/scala/kamon/instrumentation/FutureTracing.scala
index 634c94a1..b9424579 100644
--- a/kamon-core/src/main/scala/kamon/instrumentation/FutureTracing.scala
+++ b/kamon-core/src/main/scala/kamon/instrumentation/FutureTracing.scala
@@ -39,9 +39,9 @@ class FutureTracing {
@Around("futureRelatedRunnableExecution(runnable)")
def aroundExecution(pjp: ProceedingJoinPoint, runnable: TraceContextAware): Any = {
- TraceRecorder.withTraceContext(runnable.traceContext) {
+ TraceRecorder.withInlineTraceContextReplacement(runnable.traceContext) {
pjp.proceed()
}
}
-} \ No newline at end of file
+}
diff --git a/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala b/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala
index 0e264cd2..c57ac064 100644
--- a/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala
+++ b/kamon-core/src/main/scala/kamon/trace/TraceRecorder.scala
@@ -16,7 +16,10 @@
package kamon.trace
+import scala.language.experimental.macros
import java.util.concurrent.atomic.AtomicLong
+import kamon.macros.InlineTraceContextMacro
+
import scala.util.Try
import java.net.InetAddress
import akka.actor.ActorSystem
@@ -66,6 +69,8 @@ object TraceRecorder {
try thunk finally setContext(oldContext)
}
+ def withInlineTraceContextReplacement[T](traceCtx: Option[TraceContext])(thunk: ⇒ T): T = macro InlineTraceContextMacro.withInlineTraceContextImpl[T, Option[TraceContext]]
+
def finish(metadata: Map[String, String] = Map.empty): Unit = currentContext.map(_.finish(metadata))
}