diff options
Diffstat (limited to 'kamon-core/src/main/scala/kamon/Kamon.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/Kamon.scala | 46 |
1 files changed, 11 insertions, 35 deletions
diff --git a/kamon-core/src/main/scala/kamon/Kamon.scala b/kamon-core/src/main/scala/kamon/Kamon.scala index fa9e78fe..6de45e25 100644 --- a/kamon-core/src/main/scala/kamon/Kamon.scala +++ b/kamon-core/src/main/scala/kamon/Kamon.scala @@ -17,7 +17,7 @@ package kamon import com.typesafe.config.{Config, ConfigFactory} import kamon.metric._ -import kamon.trace.{ActiveSpan, Span, SpanContext, Tracer, Continuation} +import kamon.trace._ import kamon.util.{Filters, MeasurementUnit, Registration} import scala.concurrent.Future @@ -102,52 +102,28 @@ object Kamon extends MetricLookup with ReporterRegistry with Tracer { override def inject[C](spanContext: SpanContext, format: Format[C]): C = _tracer.inject(spanContext, format) - override def activeSpan(): ActiveSpan = + override def activeSpan(): Span = _tracer.activeSpan() - override def makeActive(span: Span): ActiveSpan = - _tracer.makeActive(span) + override def activate(span: Span): Scope = + _tracer.activate(span) + override def activate(span: Span, finishOnClose: Boolean): Scope = + _tracer.activate(span, finishOnClose) /** * Makes the provided Span active before code is evaluated and deactivates it afterwards. */ - def withSpan[T](span: Span)(code: => T): T = { - val activeSpan = makeActive(span) - val evaluatedCode = code - activeSpan.deactivate() - evaluatedCode - } + def withActiveSpan[T](span: Span)(code: => T): T = { + val scope = activate(span) - /** - * Actives the provided Continuation before code is evaluated and deactivates it afterwards. - */ - def withContinuation[T](continuation: Continuation)(code: => T): T = { - if(continuation == null) + try { code - else { - val activeSpan = continuation.activate() - val evaluatedCode = code - activeSpan.deactivate() - evaluatedCode + } finally { + scope.close() } } - /** - * Captures a continuation from the currently active Span (if any). - */ - def activeSpanContinuation(): Continuation = - activeSpan().capture() - - /** - * Runs the provided closure with the currently active Span (if any). - */ - def onActiveSpan[T](code: ActiveSpan => T): Unit = { - val activeSpan = Kamon.activeSpan() - if(activeSpan != null) - code(activeSpan) - } - override def loadReportersFromConfig(): Unit = _reporters.loadReportersFromConfig() |