aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace/Tracer.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-08-24 11:23:21 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2017-08-24 11:23:21 +0200
commitcd54e4ed73734dbabebbf22e4fa288c9b047992e (patch)
tree73a94488fb9097c3e3fe1ad0271f9caadd53f6cf /kamon-core/src/main/scala/kamon/trace/Tracer.scala
parent5291089bcc6bb048dcecad2c931f3408bd539574 (diff)
downloadKamon-cd54e4ed73734dbabebbf22e4fa288c9b047992e.tar.gz
Kamon-cd54e4ed73734dbabebbf22e4fa288c9b047992e.tar.bz2
Kamon-cd54e4ed73734dbabebbf22e4fa288c9b047992e.zip
introduce the SpanCustomizer API
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/Tracer.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/Tracer.scala16
1 files changed, 14 insertions, 2 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/Tracer.scala b/kamon-core/src/main/scala/kamon/trace/Tracer.scala
index 5f61f3aa..8fa5df5d 100644
--- a/kamon-core/src/main/scala/kamon/trace/Tracer.scala
+++ b/kamon-core/src/main/scala/kamon/trace/Tracer.scala
@@ -91,6 +91,7 @@ object Tracer {
final class SpanBuilder(operationName: String, tracer: Tracer.Default, spanSink: SpanSink) {
private var parentSpan: Span = _
+ private var initialOperationName: String = operationName
private var startTimestamp = 0L
private var initialSpanTags = Map.empty[String, Span.TagValue]
private var initialMetricTags = Map.empty[String, String]
@@ -133,6 +134,17 @@ object Tracer {
this
}
+ def withOperationName(operationName: String): SpanBuilder = {
+ this.initialOperationName = operationName
+ this
+ }
+
+ def spanTags: Map[String, Span.TagValue] =
+ this.initialSpanTags
+
+ def metricTags: Map[String, String] =
+ this.initialMetricTags
+
def ignoreParentFromContext(): SpanBuilder = {
this.useParentFromContext = false
this
@@ -150,7 +162,7 @@ object Tracer {
val samplingDecision: SamplingDecision = parentSpan
.map(_.context.samplingDecision)
.filter(_ != SamplingDecision.Unknown)
- .getOrElse(tracer.sampler.decide(operationName, initialSpanTags))
+ .getOrElse(tracer.sampler.decide(initialOperationName, initialSpanTags))
val spanContext = parentSpan match {
case Some(parent) => joinParentContext(parent, samplingDecision)
@@ -158,7 +170,7 @@ object Tracer {
}
tracer.tracerMetrics.createdSpans.increment()
- Span.Local(spanContext, nonRemoteParent, operationName, initialSpanTags, initialMetricTags, startTimestampMicros, spanSink, tracer.scopeSpanMetrics)
+ Span.Local(spanContext, nonRemoteParent, initialOperationName, initialSpanTags, initialMetricTags, startTimestampMicros, spanSink, tracer.scopeSpanMetrics)
}
private def joinParentContext(parent: Span, samplingDecision: SamplingDecision): SpanContext =