diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-12-12 00:40:15 +0100 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-12-12 00:40:15 +0100 |
commit | 66cf166772712267aac922c51ded90c7dec3bdd5 (patch) | |
tree | 2a4c134a2ea879348ccfc1fa6b982f9cbd822952 /kamon-core/src/main | |
parent | 1860d08fdc3fde314e18c74f745c2861178388a7 (diff) | |
download | Kamon-66cf166772712267aac922c51ded90c7dec3bdd5.tar.gz Kamon-66cf166772712267aac922c51ded90c7dec3bdd5.tar.bz2 Kamon-66cf166772712267aac922c51ded90c7dec3bdd5.zip |
allow disabling/enabling metrics collection from the SpanBuilder
Diffstat (limited to 'kamon-core/src/main')
-rw-r--r-- | kamon-core/src/main/scala/kamon/trace/Span.scala | 8 | ||||
-rw-r--r-- | kamon-core/src/main/scala/kamon/trace/Tracer.scala | 14 |
2 files changed, 17 insertions, 5 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/Span.scala b/kamon-core/src/main/scala/kamon/trace/Span.scala index 7410523b..d8d11589 100644 --- a/kamon-core/src/main/scala/kamon/trace/Span.scala +++ b/kamon-core/src/main/scala/kamon/trace/Span.scala @@ -93,9 +93,9 @@ object Span { * @param spanSink */ final class Local(spanContext: SpanContext, parent: Option[Span], initialOperationName: String, initialSpanTags: Map[String, Span.TagValue], - initialMetricTags: Map[String, String], startTimestampMicros: Long, spanSink: SpanSink, scopeSpanMetrics: Boolean) extends Span { + initialMetricTags: Map[String, String], startTimestampMicros: Long, spanSink: SpanSink, trackMetrics: Boolean, scopeSpanMetrics: Boolean) extends Span { - private var collectMetrics: Boolean = true + private var collectMetrics: Boolean = trackMetrics private var open: Boolean = true private val sampled: Boolean = spanContext.samplingDecision == SamplingDecision.Sample private var hasError: Boolean = false @@ -222,8 +222,8 @@ object Span { object Local { def apply(spanContext: SpanContext, parent: Option[Span], initialOperationName: String, initialSpanTags: Map[String, Span.TagValue], initialMetricTags: Map[String, String], startTimestampMicros: Long, spanSink: SpanSink, - scopeSpanMetrics: Boolean): Local = - new Local(spanContext, parent, initialOperationName, initialSpanTags, initialMetricTags, startTimestampMicros, spanSink, scopeSpanMetrics) + trackMetrics: Boolean, scopeSpanMetrics: Boolean): Local = + new Local(spanContext, parent, initialOperationName, initialSpanTags, initialMetricTags, startTimestampMicros, spanSink, trackMetrics, scopeSpanMetrics) } diff --git a/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/kamon-core/src/main/scala/kamon/trace/Tracer.scala index 03c44a2c..addeddf6 100644 --- a/kamon-core/src/main/scala/kamon/trace/Tracer.scala +++ b/kamon-core/src/main/scala/kamon/trace/Tracer.scala @@ -96,6 +96,7 @@ object Tracer { private var initialSpanTags = Map.empty[String, Span.TagValue] private var initialMetricTags = Map.empty[String, String] private var useParentFromContext = true + private var trackMetrics = true def asChildOf(parent: Span): SpanBuilder = { if(parent != Span.Empty) this.parentSpan = parent @@ -145,6 +146,17 @@ object Tracer { this } + def enableMetrics(): SpanBuilder = { + this.trackMetrics = true + this + } + + def disableMetrics(): SpanBuilder = { + this.trackMetrics = false + this + } + + def start(): Span = { val startTimestampMicros = if(startTimestamp != 0L) startTimestamp else Clock.microTimestamp() @@ -165,7 +177,7 @@ object Tracer { } tracer.tracerMetrics.createdSpans.increment() - Span.Local(spanContext, nonRemoteParent, initialOperationName, initialSpanTags, initialMetricTags, startTimestampMicros, spanSink, tracer.scopeSpanMetrics) + Span.Local(spanContext, nonRemoteParent, initialOperationName, initialSpanTags, initialMetricTags, startTimestampMicros, spanSink, trackMetrics, tracer.scopeSpanMetrics) } private def joinParentContext(parent: Span, samplingDecision: SamplingDecision): SpanContext = |