From 02e18a1186f9b0dd9a7133ff30aa73774822db13 Mon Sep 17 00:00:00 2001 From: Tristan Sallé Date: Wed, 27 May 2015 10:14:11 +0200 Subject: + core: add a clock-sampler, fix ordered-sampler, add unit tests for samplers --- .../src/main/scala/kamon/trace/TracerModule.scala | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/trace/TracerModule.scala') diff --git a/kamon-core/src/main/scala/kamon/trace/TracerModule.scala b/kamon-core/src/main/scala/kamon/trace/TracerModule.scala index 88464a30..06286cae 100644 --- a/kamon-core/src/main/scala/kamon/trace/TracerModule.scala +++ b/kamon-core/src/main/scala/kamon/trace/TracerModule.scala @@ -17,6 +17,7 @@ package kamon.trace import akka.actor._ +import akka.event.{ LoggingAdapter, Logging } import com.typesafe.config.Config import kamon.Kamon import kamon.metric.MetricsModule @@ -112,17 +113,17 @@ private[kamon] class TracerModuleImpl(metricsExtension: MetricsModule, config: C isOpen: Boolean = true, isLocal: Boolean = true): TraceContext = { def newMetricsOnlyContext(token: String): TraceContext = - new MetricsOnlyContext(traceName, token, isOpen, _settings.levelOfDetail, startTimestamp, null) + new MetricsOnlyContext(traceName, token, isOpen, _settings.levelOfDetail, startTimestamp, _logger) val traceToken = token.getOrElse(newToken) - if (_settings.levelOfDetail == LevelOfDetail.MetricsOnly || !isLocal) - newMetricsOnlyContext(traceToken) - else { - if (!_settings.sampler.shouldTrace) + _settings.levelOfDetail match { + case LevelOfDetail.MetricsOnly ⇒ newMetricsOnlyContext(traceToken) - else - new TracingContext(traceName, traceToken, true, _settings.levelOfDetail, isLocal, startTimestamp, null, dispatchTracingContext) + case _ if !isLocal || !_settings.sampler.shouldTrace ⇒ + newMetricsOnlyContext(traceToken) + case _ ⇒ + new TracingContext(traceName, traceToken, true, _settings.levelOfDetail, isLocal, startTimestamp, _logger, dispatchTracingContext) } } @@ -143,6 +144,7 @@ private[kamon] class TracerModuleImpl(metricsExtension: MetricsModule, config: C * Tracer Extension initialization. */ private var _system: ActorSystem = null + private var _logger: LoggingAdapter = null private lazy val _start = { val subscriptions = _system.actorOf(Props[TraceSubscriptions], "trace-subscriptions") _subscriptions.point(subscriptions) @@ -151,6 +153,7 @@ private[kamon] class TracerModuleImpl(metricsExtension: MetricsModule, config: C def start(system: ActorSystem): Unit = synchronized { _system = system + _logger = Logging(_system, "TracerModule") _start _system = null } -- cgit v1.2.3