aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-07-17 14:56:40 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2017-07-17 14:56:40 +0200
commit64f383bcb590398e6bd1001f75e61b3b89a6b908 (patch)
tree7afb3c36ede518d2e9578fb58a503abadcc30742
parent0bce1b24c3a75c28d125fe7d91d05ea1f28926d5 (diff)
downloadKamon-64f383bcb590398e6bd1001f75e61b3b89a6b908.tar.gz
Kamon-64f383bcb590398e6bd1001f75e61b3b89a6b908.tar.bz2
Kamon-64f383bcb590398e6bd1001f75e61b3b89a6b908.zip
expose the Tracer API via Kamon companion object
-rw-r--r--kamon-core/src/main/scala/kamon/Kamon.scala18
-rw-r--r--kamon-core/src/main/scala/kamon/trace/Tracer.scala5
2 files changed, 16 insertions, 7 deletions
diff --git a/kamon-core/src/main/scala/kamon/Kamon.scala b/kamon-core/src/main/scala/kamon/Kamon.scala
index 5c7f9e53..4865b5d6 100644
--- a/kamon-core/src/main/scala/kamon/Kamon.scala
+++ b/kamon-core/src/main/scala/kamon/Kamon.scala
@@ -30,8 +30,9 @@ import org.slf4j.LoggerFactory
import scala.util.Try
-object Kamon extends MetricLookup with ReporterRegistry {
+object Kamon extends MetricLookup with ReporterRegistry with Tracer {
private val logger = LoggerFactory.getLogger("kamon.Kamon")
+
@volatile private var _config = ConfigFactory.load()
@volatile private var _environment = Environment.fromConfig(_config)
@volatile private var _filters = Filters.fromConfig(_config)
@@ -39,7 +40,7 @@ object Kamon extends MetricLookup with ReporterRegistry {
private val _scheduler = Executors.newScheduledThreadPool(schedulerPoolSize(_config), numberedThreadFactory("kamon-scheduler"))
private val _metrics = new MetricRegistry(_config, _scheduler)
private val _reporters = new ReporterRegistryImpl(_metrics, _config)
- private val _tracer = new Tracer.Default(Kamon, _reporters, _config)
+ private val _tracer = Tracer.Default(Kamon, _reporters, _config)
private var _onReconfigureHooks = Seq.empty[OnReconfigureHook]
def environment: Environment =
@@ -88,19 +89,22 @@ object Kamon extends MetricLookup with ReporterRegistry {
def tracer: Tracer =
_tracer
- def buildSpan(operationName: String): Tracer.SpanBuilder =
+ override def buildSpan(operationName: String): Tracer.SpanBuilder =
_tracer.buildSpan(operationName)
- def extract[C](format: Format[C], carrier: C): Option[SpanContext] =
+ override def extract[C](format: Format[C], carrier: C): Option[SpanContext] =
_tracer.extract(format, carrier)
- def inject[C](spanContext: SpanContext, format: Format[C], carrier: C): Unit =
+ override def inject[C](spanContext: SpanContext, format: Format[C], carrier: C): C =
_tracer.inject(spanContext, format, carrier)
- def activeSpan(): ActiveSpan =
+ override def inject[C](spanContext: SpanContext, format: Format[C]): C =
+ _tracer.inject(spanContext, format)
+
+ override def activeSpan(): ActiveSpan =
_tracer.activeSpan()
- def makeActive(span: Span): ActiveSpan =
+ override def makeActive(span: Span): ActiveSpan =
_tracer.makeActive(span)
diff --git a/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/kamon-core/src/main/scala/kamon/trace/Tracer.scala
index 08643c63..ecc690af 100644
--- a/kamon-core/src/main/scala/kamon/trace/Tracer.scala
+++ b/kamon-core/src/main/scala/kamon/trace/Tracer.scala
@@ -107,6 +107,11 @@ object Tracer {
}
}
+ object Default {
+ def apply(metrics: MetricLookup, reporterRegistry: ReporterRegistryImpl, initialConfig: Config): Default =
+ new Default(metrics, reporterRegistry, initialConfig)
+ }
+
final class SpanBuilder(operationName: String, tracer: Tracer.Default, reporterRegistry: ReporterRegistryImpl) {
private var parentContext: SpanContext = _
private var startTimestamp = 0L