diff options
author | Diego <diegolparra@gmail.com> | 2017-08-15 13:16:45 -0300 |
---|---|---|
committer | Diego <diegolparra@gmail.com> | 2017-08-15 13:16:45 -0300 |
commit | 61029e115272b9af3f4460b311d3a2e650c806e3 (patch) | |
tree | 2a6f02a7153ae11720e8f42d7c4292c6d39136e1 /kamon-core/src/main | |
parent | 497224c0e499abd611c00c54a57ba04df9bb6d1b (diff) | |
download | Kamon-61029e115272b9af3f4460b311d3a2e650c806e3.tar.gz Kamon-61029e115272b9af3f4460b311d3a2e650c806e3.tar.bz2 Kamon-61029e115272b9af3f4460b311d3a2e650c806e3.zip |
expose SpanCodec through Kamon::contextCodec
Diffstat (limited to 'kamon-core/src/main')
4 files changed, 38 insertions, 4 deletions
diff --git a/kamon-core/src/main/scala/kamon/Kamon.scala b/kamon-core/src/main/scala/kamon/Kamon.scala index 884f2d93..2c0561e2 100644 --- a/kamon-core/src/main/scala/kamon/Kamon.scala +++ b/kamon-core/src/main/scala/kamon/Kamon.scala @@ -24,7 +24,7 @@ import scala.concurrent.Future import java.time.Duration import java.util.concurrent.{Executors, ScheduledExecutorService, ScheduledThreadPoolExecutor} -import kamon.context.{Context, Storage} +import kamon.context.{Codec, Context, Storage} import org.slf4j.LoggerFactory import scala.util.Try @@ -42,6 +42,7 @@ object Kamon extends MetricLookup with ReporterRegistry with Tracer { private val _reporters = new ReporterRegistryImpl(_metrics, _config) private val _tracer = Tracer.Default(Kamon, _reporters, _config) private val _contextStorage = Storage.ThreadLocal() + private val _contextCodec = new Codec(_config) private var _onReconfigureHooks = Seq.empty[OnReconfigureHook] def environment: Environment = @@ -57,6 +58,7 @@ object Kamon extends MetricLookup with ReporterRegistry with Tracer { _metrics.reconfigure(config) _reporters.reconfigure(config) _tracer.reconfigure(config) + _contextCodec.reconfigure(config) _onReconfigureHooks.foreach(hook => { Try(hook.onReconfigure(config)).failed.foreach(error => @@ -98,6 +100,9 @@ object Kamon extends MetricLookup with ReporterRegistry with Tracer { override def identityProvider: IdentityProvider = _tracer.identityProvider + def contextCodec(): Codec = + _contextCodec + def currentContext(): Context = _contextStorage.current() diff --git a/kamon-core/src/main/scala/kamon/context/Codec.scala b/kamon-core/src/main/scala/kamon/context/Codec.scala index 10580c22..19ec2a20 100644 --- a/kamon-core/src/main/scala/kamon/context/Codec.scala +++ b/kamon-core/src/main/scala/kamon/context/Codec.scala @@ -1,8 +1,22 @@ +/* ========================================================================================= + * Copyright © 2013-2017 the kamon project <http://kamon.io/> + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + package kamon package context import com.typesafe.config.Config -import kamon.trace.IdentityProvider import kamon.util.DynamicAccess import org.slf4j.LoggerFactory diff --git a/kamon-core/src/main/scala/kamon/context/Context.scala b/kamon-core/src/main/scala/kamon/context/Context.scala index f8a4662f..85c80d50 100644 --- a/kamon-core/src/main/scala/kamon/context/Context.scala +++ b/kamon-core/src/main/scala/kamon/context/Context.scala @@ -1,8 +1,23 @@ +/* ========================================================================================= + * Copyright © 2013-2017 the kamon project <http://kamon.io/> + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + package kamon.context class Context private (private[context] val entries: Map[Key[_], Any]) { def get[T](key: Key[T]): T = - entries.get(key).getOrElse(key.emptyValue).asInstanceOf[T] + entries.getOrElse(key, key.emptyValue).asInstanceOf[T] def withKey[T](key: Key[T], value: T): Context = new Context(entries.updated(key, value)) diff --git a/kamon-core/src/main/scala/kamon/trace/SpanCodec.scala b/kamon-core/src/main/scala/kamon/trace/SpanCodec.scala index e04ceb03..96317696 100644 --- a/kamon-core/src/main/scala/kamon/trace/SpanCodec.scala +++ b/kamon-core/src/main/scala/kamon/trace/SpanCodec.scala @@ -32,7 +32,7 @@ object SpanCodec { val carrier = TextMap.Default() if(span.nonEmpty()) { - val spanContext = span.context + val spanContext = span.context() carrier.put(Headers.TraceIdentifier, urlEncode(spanContext.traceID.string)) carrier.put(Headers.SpanIdentifier, urlEncode(spanContext.spanID.string)) carrier.put(Headers.ParentSpanIdentifier, urlEncode(spanContext.parentID.string)) |