From 469c11dc1ddb140f407a33f48033e533bf60611c Mon Sep 17 00:00:00 2001 From: Ryan Bair Date: Sun, 23 Apr 2017 19:57:36 -0400 Subject: Rename class vars so they do not shadow the def from their parent. Fixes #453. (#454) --- .../main/scala/kamon/trace/TracingContext.scala | 8 +++---- .../test/scala/kamon/trace/SimpleTraceSpec.scala | 28 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/kamon-core/src/main/scala/kamon/trace/TracingContext.scala b/kamon-core/src/main/scala/kamon/trace/TracingContext.scala index 1ea35526..ff128f85 100644 --- a/kamon-core/src/main/scala/kamon/trace/TracingContext.scala +++ b/kamon-core/src/main/scala/kamon/trace/TracingContext.scala @@ -27,14 +27,14 @@ import scala.collection.concurrent.TrieMap private[trace] class TracingContext( traceName: String, token: String, - tags: Map[String, String], + traceTags: Map[String, String], currentStatus: Status, levelOfDetail: LevelOfDetail, isLocal: Boolean, startTimeztamp: RelativeNanoTimestamp, log: LoggingAdapter, traceInfoSink: TracingContext ⇒ Unit -) extends MetricsOnlyContext(traceName, token, tags, currentStatus, levelOfDetail, startTimeztamp, log) { +) extends MetricsOnlyContext(traceName, token, traceTags, currentStatus, levelOfDetail, startTimeztamp, log) { private val _openSegments = new AtomicInteger(0) private val _startTimestamp = NanoTimestamp.now @@ -93,8 +93,8 @@ private[trace] class TracingContext( segmentName: String, category: String, library: String, - tags: Map[String, String] - ) extends MetricsOnlySegment(segmentName, category, library, tags) { + segmentTags: Map[String, String] + ) extends MetricsOnlySegment(segmentName, category, library, segmentTags) { private val metadata = TrieMap.empty[String, String] override def addMetadata(key: String, value: String): Unit = metadata.put(key, value) diff --git a/kamon-core/src/test/scala/kamon/trace/SimpleTraceSpec.scala b/kamon-core/src/test/scala/kamon/trace/SimpleTraceSpec.scala index faf127c1..fe7ad053 100644 --- a/kamon-core/src/test/scala/kamon/trace/SimpleTraceSpec.scala +++ b/kamon-core/src/test/scala/kamon/trace/SimpleTraceSpec.scala @@ -108,6 +108,34 @@ class SimpleTraceSpec extends BaseKamonSpec("simple-trace-spec") { segmentTwo.get.tags should be(Map("segment-two-info" → "info")) } + "send a TraceInfo when the trace has finished and all segments are finished and contains added tag" in { + Kamon.tracer.subscribe(testActor) + + Tracer.withContext(newContext("simple-trace-without-segments", "awesome-token")) { + Tracer.currentContext.addTag("environment", "production") + val segmentOne = Tracer.currentContext.startSegment("segment-one", "test-segment", "test") + segmentOne.addTag("segment-one-info", "info") + segmentOne.finish() + val segmentTwo = Tracer.currentContext.startSegment("segment-two", "test-segment", "test") + segmentTwo.addTag("segment-two-info", "info") + segmentTwo.finish() + Tracer.currentContext.finish() + } + + val traceInfo = expectMsgType[TraceInfo] + Kamon.tracer.unsubscribe(testActor) + + traceInfo.name should be("simple-trace-without-segments") + traceInfo.tags should be(Map("environment" → "production")) + traceInfo.segments.size should be(2) + + val segmentOne = traceInfo.segments.find(_.name == "segment-one") + val segmentTwo = traceInfo.segments.find(_.name == "segment-two") + + segmentOne.get.tags should be(Map("segment-one-info" → "info")) + segmentTwo.get.tags should be(Map("segment-two-info" → "info")) + } + "incubate the tracing context if there are open segments after finishing" in { Kamon.tracer.subscribe(testActor) -- cgit v1.2.3