aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace/SpanContext.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/SpanContext.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/SpanContext.scala63
1 files changed, 11 insertions, 52 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/SpanContext.scala b/kamon-core/src/main/scala/kamon/trace/SpanContext.scala
index ae92f46d..4d013881 100644
--- a/kamon-core/src/main/scala/kamon/trace/SpanContext.scala
+++ b/kamon-core/src/main/scala/kamon/trace/SpanContext.scala
@@ -16,7 +16,7 @@
package kamon.trace
import kamon.trace.IdentityProvider.Identifier
-import kamon.trace.SpanContext.{Baggage, SamplingDecision, Source}
+import kamon.trace.SpanContext.SamplingDecision
/**
*
@@ -24,9 +24,8 @@ import kamon.trace.SpanContext.{Baggage, SamplingDecision, Source}
* @param spanID
* @param parentID
* @param samplingDecision
- * @param baggage
*/
-case class SpanContext(traceID: Identifier, spanID: Identifier, parentID: Identifier, samplingDecision: SamplingDecision, baggage: Baggage, source: Source) {
+case class SpanContext(traceID: Identifier, spanID: Identifier, parentID: Identifier, samplingDecision: SamplingDecision) {
def createChild(childSpanID: Identifier, samplingDecision: SamplingDecision): SpanContext =
this.copy(parentID = this.spanID, spanID = childSpanID)
@@ -34,73 +33,33 @@ case class SpanContext(traceID: Identifier, spanID: Identifier, parentID: Identi
object SpanContext {
- sealed trait Source
- object Source {
- case object Local extends Source
- case object Remote extends Source
- }
-
val EmptySpanContext = SpanContext(
- traceID = IdentityProvider.NoIdentifier,
- spanID = IdentityProvider.NoIdentifier,
- parentID = IdentityProvider.NoIdentifier,
- samplingDecision = SamplingDecision.DoNotSample,
- baggage = Baggage.EmptyBaggage,
- source = Source.Local
+ traceID = IdentityProvider.NoIdentifier,
+ spanID = IdentityProvider.NoIdentifier,
+ parentID = IdentityProvider.NoIdentifier,
+ samplingDecision = SamplingDecision.DoNotSample
)
sealed trait SamplingDecision
+
object SamplingDecision {
/**
- * The Trace is sampled, all child Spans should be sampled as well.
+ * The Trace is sampled, all child Spans should be sampled as well.
*/
case object Sample extends SamplingDecision
/**
- * The Trace is not sampled, none of the child Spans should be sampled.
+ * The Trace is not sampled, none of the child Spans should be sampled.
*/
case object DoNotSample extends SamplingDecision
/**
- * The sampling decision has not been taken yet, the Tracer is free to decide when creating a Span.
+ * The sampling decision has not been taken yet, the Tracer is free to decide when creating a Span.
*/
case object Unknown extends SamplingDecision
- }
- /**
- *
- */
-
- sealed trait Baggage {
- def add(key: String, value:String): Unit
- def get(key: String): Option[String]
- def getAll(): Map[String, String]
}
- object Baggage {
- def apply(): Baggage = new DefaultBaggage()
-
- case object EmptyBaggage extends Baggage {
- override def add(key: String, value: String): Unit = {}
- override def get(key: String): Option[String] = None
- override def getAll: Map[String, String] = Map.empty
- }
-
-
- final class DefaultBaggage extends Baggage {
- private var baggage: Map[String, String] = Map.empty
-
- def add(key: String, value: String): Unit = synchronized {
- baggage = baggage + (key -> value)
- }
-
- def get(key: String): Option[String] =
- baggage.get(key)
-
- def getAll: Map[String, String] =
- baggage
- }
- }
-}
+} \ No newline at end of file