diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-07-18 09:29:19 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-07-18 09:29:19 +0200 |
commit | 364216f15fcffd9ed4925c8279adaa5055ce9fef (patch) | |
tree | a42581a83e3af324b0d4f3769ab0858252b5e8bf /kamon-core | |
parent | 75198eb327823cd31e90a5ff53414de501b1e071 (diff) | |
download | Kamon-364216f15fcffd9ed4925c8279adaa5055ce9fef.tar.gz Kamon-364216f15fcffd9ed4925c8279adaa5055ce9fef.tar.bz2 Kamon-364216f15fcffd9ed4925c8279adaa5055ce9fef.zip |
make the remote parent join mode configurable
Diffstat (limited to 'kamon-core')
-rw-r--r-- | kamon-core/src/main/resources/reference.conf | 7 | ||||
-rw-r--r-- | kamon-core/src/main/scala/kamon/trace/Tracer.scala | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/kamon-core/src/main/resources/reference.conf b/kamon-core/src/main/resources/reference.conf index 06da8e18..cd8fa379 100644 --- a/kamon-core/src/main/resources/reference.conf +++ b/kamon-core/src/main/resources/reference.conf @@ -85,6 +85,13 @@ kamon { reporter-queue-size = 1024 + # Decide whether a new, locally created Span should have the same Span Identifier as it's remote parent (if any) or + # get a new local identifier. Certain tracing systems use the same Span Identifier to represent both sides (client + # and server) of a RPC call, if you are reporting data to such systems then this option should be enabled. + # + # If you are using Zipkin, keep this option enabled. If you are using Jaeger, disable it. + join-remote-parents-with-same-span-id = true + # Configures a sample that decides which traces should be reported to the trace backends. The possible values are: # - always: report all traces. # - never: don't report any trace. diff --git a/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/kamon-core/src/main/scala/kamon/trace/Tracer.scala index 1aa07be1..c10974f5 100644 --- a/kamon-core/src/main/scala/kamon/trace/Tracer.scala +++ b/kamon-core/src/main/scala/kamon/trace/Tracer.scala @@ -50,7 +50,7 @@ object Tracer { } private[Tracer] val tracerMetrics = new TracerMetrics(metrics) - @volatile private[Tracer] var joinRemoteSpansWithSameID: Boolean = false + @volatile private[Tracer] var joinRemoteParentsWithSameSpanID: Boolean = true @volatile private[Tracer] var configuredSampler: Sampler = Sampler.Never @volatile private[Tracer] var identityProvider: IdentityProvider = IdentityProvider.Default() @volatile private[Tracer] var textMapSpanContextCodec: SpanContextCodec[TextMap] = SpanContextCodec.ExtendedB3(identityProvider) @@ -101,6 +101,8 @@ object Tracer { case "random" => Sampler.random(traceConfig.getDouble("random-sampler.probability")) case other => sys.error(s"Unexpected sampler name $other.") } + + joinRemoteParentsWithSameSpanID = traceConfig.getBoolean("join-remote-parents-with-same-span-id") } } @@ -160,7 +162,7 @@ object Tracer { } private def joinParentContext(parent: SpanContext, samplingDecision: SamplingDecision): SpanContext = - if(parent.source == Source.Remote && tracer.joinRemoteSpansWithSameID) + if(parent.source == Source.Remote && tracer.joinRemoteParentsWithSameSpanID) parent.copy(samplingDecision = samplingDecision) else parent.createChild(tracer.identityProvider.spanIdentifierGenerator().generate(), samplingDecision) |