aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon
diff options
context:
space:
mode:
authorDiego <diegolparra@gmail.com>2016-07-27 14:03:52 -0300
committerDiego <diegolparra@gmail.com>2016-07-27 14:03:52 -0300
commit3a57f32a55841527939019fe5fefa8349d352a02 (patch)
tree0b81244e61342cb0bf88bfafe7fb29b816105ae9 /kamon-core/src/main/scala/kamon
parentb4bd6588ad568d2c049b5473189858e487693e29 (diff)
downloadKamon-3a57f32a55841527939019fe5fefa8349d352a02.tar.gz
Kamon-3a57f32a55841527939019fe5fefa8349d352a02.tar.bz2
Kamon-3a57f32a55841527939019fe5fefa8349d352a02.zip
+ core: include Tags and Status in TraceInfo and SegmentInfo and closes #377
Diffstat (limited to 'kamon-core/src/main/scala/kamon')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/MetricsOnlyContext.scala4
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TraceContext.scala2
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TracerModule.scala4
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TracingContext.scala11
4 files changed, 12 insertions, 9 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/MetricsOnlyContext.scala b/kamon-core/src/main/scala/kamon/trace/MetricsOnlyContext.scala
index e747b731..c3a1571a 100644
--- a/kamon-core/src/main/scala/kamon/trace/MetricsOnlyContext.scala
+++ b/kamon-core/src/main/scala/kamon/trace/MetricsOnlyContext.scala
@@ -61,7 +61,7 @@ private[kamon] class MetricsOnlyContext(traceName: String,
_elapsedTime = traceElapsedTime
if (Kamon.metrics.shouldTrack(name, TraceMetrics.category)) {
- val traceEntity = Kamon.metrics.entity(TraceMetrics, name)
+ val traceEntity = Kamon.metrics.entity(TraceMetrics, name, _tags.toMap)
traceEntity.elapsedTime.record(traceElapsedTime.nanos)
if (withError) traceEntity.errors.increment()
}
@@ -125,7 +125,7 @@ private[kamon] class MetricsOnlyContext(traceName: String,
segmentTags: Map[String, String]) extends Segment {
private val _startTimestamp = RelativeNanoTimestamp.now
- protected val _tags = TrieMap.empty[String, String] ++= segmentTags
+ private val _tags = TrieMap.empty[String, String] ++= segmentTags
@volatile private var _segmentName = segmentName
@volatile private var _elapsedTime = NanoInterval.default
diff --git a/kamon-core/src/main/scala/kamon/trace/TraceContext.scala b/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
index 43a87470..935fe0ba 100644
--- a/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
+++ b/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
@@ -110,9 +110,7 @@ case object EmptyTraceContext extends TraceContext {
def startSegment(segmentName: String, category: String, library: String, tags: Map[String, String]): Segment = EmptySegment
def addMetadata(key: String, value: String): Unit = {}
def startTimestamp = new RelativeNanoTimestamp(0L)
- def addTags(tags: Map[String, String]): Unit = {}
def addTag(key: String, value: String): Unit = {}
- def removeTags(tags: Map[String, String]): Unit = {}
def removeTag(key: String, value: String): Boolean = false
case object EmptySegment extends Segment {
diff --git a/kamon-core/src/main/scala/kamon/trace/TracerModule.scala b/kamon-core/src/main/scala/kamon/trace/TracerModule.scala
index a0aff083..a60b1617 100644
--- a/kamon-core/src/main/scala/kamon/trace/TracerModule.scala
+++ b/kamon-core/src/main/scala/kamon/trace/TracerModule.scala
@@ -194,5 +194,5 @@ private[kamon] object TracerModuleImpl {
new TracerModuleImpl(metricsExtension, config)
}
-case class TraceInfo(name: String, token: String, timestamp: NanoTimestamp, elapsedTime: NanoInterval, metadata: Map[String, String], segments: List[SegmentInfo])
-case class SegmentInfo(name: String, category: String, library: String, timestamp: NanoTimestamp, elapsedTime: NanoInterval, metadata: Map[String, String], tags: Map[String, String]) \ No newline at end of file
+case class TraceInfo(name: String, token: String, timestamp: NanoTimestamp, elapsedTime: NanoInterval, metadata: Map[String, String], tags: Map[String, String], segments: List[SegmentInfo], status: Status)
+case class SegmentInfo(name: String, category: String, library: String, timestamp: NanoTimestamp, elapsedTime: NanoInterval, metadata: Map[String, String], tags: Map[String, String], status: Status) \ No newline at end of file
diff --git a/kamon-core/src/main/scala/kamon/trace/TracingContext.scala b/kamon-core/src/main/scala/kamon/trace/TracingContext.scala
index 34a373fb..4cada1d0 100644
--- a/kamon-core/src/main/scala/kamon/trace/TracingContext.scala
+++ b/kamon-core/src/main/scala/kamon/trace/TracingContext.scala
@@ -1,6 +1,6 @@
/*
* =========================================================================================
- * Copyright © 2013-2014 the kamon project <http://kamon.io/>
+ * Copyright © 2013-2016 the kamon project <http://kamon.io/>
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License at
@@ -57,6 +57,11 @@ private[trace] class TracingContext(traceName: String,
traceInfoSink(this)
}
+ override def finishWithError(cause: Throwable): Unit = {
+ super.finishWithError(cause)
+ traceInfoSink(this)
+ }
+
override def finishSegment(segmentName: String, category: String, library: String, duration: NanoInterval, tags: Map[String, String], isFinishedWithError: Boolean = false): Unit = {
_openSegments.decrementAndGet()
super.finishSegment(segmentName, category, library, duration, tags, isFinishedWithError)
@@ -79,7 +84,7 @@ private[trace] class TracingContext(traceName: String,
log.warning("Segment [{}] will be left out of TraceInfo because it was still open.", segment.name)
}
- TraceInfo(name, token, _startTimestamp, elapsedTime, _metadata.toMap, segmentsInfo.result())
+ TraceInfo(name, token, _startTimestamp, elapsedTime, _metadata.toMap, tags, segmentsInfo.result(), status)
}
class TracingSegment(segmentName: String,
@@ -98,7 +103,7 @@ private[trace] class TracingContext(traceName: String,
// expensive and inaccurate, but we can do that once for the trace and calculate all the segments relative to it.
val segmentStartTimestamp = new NanoTimestamp((this.startTimestamp.nanos - traceRelativeTimestamp.nanos) + traceStartTimestamp.nanos)
- SegmentInfo(this.name, category, library, segmentStartTimestamp, this.elapsedTime, metadata.toMap, _tags.toMap)
+ SegmentInfo(this.name, category, library, segmentStartTimestamp, this.elapsedTime, metadata.toMap, tags, status)
}
}
} \ No newline at end of file