aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-07-18 13:31:06 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2017-07-18 13:31:06 +0200
commitbfca826392933357046c5f4682cf7b43911b5433 (patch)
tree8b868447c3d6100b4de039e6a7e18835006c0515
parenta2d54a72b806ebd60f19011559a6c186d2d9640b (diff)
downloadKamon-bfca826392933357046c5f4682cf7b43911b5433.tar.gz
Kamon-bfca826392933357046c5f4682cf7b43911b5433.tar.bz2
Kamon-bfca826392933357046c5f4682cf7b43911b5433.zip
provide the proper FQCN for default identity providers and codecs
-rw-r--r--build.sbt3
-rw-r--r--kamon-core/src/main/resources/reference.conf10
-rw-r--r--kamon-core/src/main/scala/kamon/trace/Tracer.scala4
-rw-r--r--kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala17
-rw-r--r--kamon-core/src/test/scala/kamon/trace/TracerSpec.scala18
5 files changed, 45 insertions, 7 deletions
diff --git a/build.sbt b/build.sbt
index 23cde6bb..0181b883 100644
--- a/build.sbt
+++ b/build.sbt
@@ -36,7 +36,8 @@ lazy val core = (project in file("kamon-core"))
"org.hdrhistogram" % "HdrHistogram" % "2.1.9",
"com.lihaoyi" %% "fansi" % "0.2.4",
- "org.scalatest" %% "scalatest" % "3.0.1" % "test"
+ "org.scalatest" %% "scalatest" % "3.0.1" % "test",
+ "ch.qos.logback" % "logback-classic" % "1.2.2" % "test"
)
)
diff --git a/kamon-core/src/main/resources/reference.conf b/kamon-core/src/main/resources/reference.conf
index cc4da03e..3e9d7b8d 100644
--- a/kamon-core/src/main/resources/reference.conf
+++ b/kamon-core/src/main/resources/reference.conf
@@ -110,12 +110,12 @@ kamon {
# The IdentityProvider used to generate Trace and Span Identifiers in Kamon. There are two default implementations
# that ship with Kamon:
- # - kamon.trace.IdentityProvider.Default: Creates 8-byte identifiers for both Traces and Spans.
- # - kamon.trace.IdentityProvider.DoubleSizeTraceID: Creates 16-byte identifiers for Traces and 8-byte identifiers
+ # - kamon.trace.IdentityProvider$Default: Creates 8-byte identifiers for both Traces and Spans.
+ # - kamon.trace.IdentityProvider$DoubleSizeTraceID: Creates 16-byte identifiers for Traces and 8-byte identifiers
# for Spans.
#
# Any external implementation can be configured here, as long as it can be instantiated with a parameterless constructor.
- identity-provider = "kamon.trace.IdentityProvider.Default"
+ identity-provider = "kamon.trace.IdentityProvider$Default"
# The SpanContextCodecs are used to encode/decode the SpanContext data into simple TextMaps, HTTP Headers or Binary
# carriers. The decision about which one to use is based on the kamon.trace.SpanContextCodec.Format instance passed
@@ -127,11 +127,11 @@ kamon {
# Encodes/Decodes the SpanContext data using a simple key/value pair. Since this is very rarely going to be used
# we default to using the same codec for HTTP Headers, as it is built on top of a TextMap.
- text-map = "kamon.trace.SpanContextCodec.ExtendedB3"
+ text-map = "kamon.trace.SpanContextCodec$ExtendedB3"
# Encodes/Decodes the SpanContext into a TextMap with HTTP Header friendly, URLEncoded values. The default
# implementation follows the guidelines of B3 propagation. See more at https://github.com/openzipkin/b3-propagation.
- http-headers = "kamon.trace.SpanContextCodec.ExtendedB3"
+ http-headers = "kamon.trace.SpanContextCodec$ExtendedB3"
# Encodes/Decodes the SpanContext using a binary representation.
binary = "TODO"
diff --git a/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/kamon-core/src/main/scala/kamon/trace/Tracer.scala
index f95a8cef..47b633ac 100644
--- a/kamon-core/src/main/scala/kamon/trace/Tracer.scala
+++ b/kamon-core/src/main/scala/kamon/trace/Tracer.scala
@@ -98,7 +98,7 @@ object Tracer {
private[kamon] def reconfigure(config: Config): Unit = synchronized {
Try {
- val dynamic = new DynamicAccess(classOf[Tracer].getClassLoader)
+ val dynamic = new DynamicAccess(getClass.getClassLoader)
val traceConfig = config.getConfig("kamon.trace")
val newSampler = traceConfig.getString("sampler") match {
@@ -134,6 +134,8 @@ object Tracer {
textMapSpanContextCodec = newTextMapSpanContextCodec
httpHeaderSpanContextCodec = newHttpHeadersSpanContextCodec
+ }.failed.foreach {
+ ex => logger.error("Unable to reconfigure Kamon Tracer", ex)
}
}
}
diff --git a/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala b/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala
new file mode 100644
index 00000000..b0bb3e39
--- /dev/null
+++ b/kamon-core/src/test/scala/kamon/testkit/SpanInspector.scala
@@ -0,0 +1,17 @@
+package kamon.testkit
+
+import kamon.trace.Span
+import kamon.trace.Span.FinishedSpan
+
+class SpanInspector(span: Span) {
+
+
+ private def getSpanData(): Option[FinishedSpan] = {
+
+ }
+
+}
+
+object SpanInspector {
+ def apply(span: Span): SpanInspector = new SpanInspector(span)
+}
diff --git a/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala b/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala
new file mode 100644
index 00000000..686c15d0
--- /dev/null
+++ b/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala
@@ -0,0 +1,18 @@
+package kamon.trace
+
+import kamon.Kamon
+import org.scalatest.{Matchers, WordSpec}
+
+class TracerSpec extends WordSpec with Matchers {
+
+ "the Kamon tracer" should {
+ "build spans that contain all information given to the builder" in {
+ val span = tracer.buildSpan("myOperation")
+ .withSpanTag("hello", "world")
+ .start()
+ }
+ }
+
+ val tracer: Tracer = Kamon
+
+}