aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-11-09 22:55:43 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2014-11-09 22:56:03 +0100
commit2f274788aa8c96eed918ef3ddb69de496d5d0346 (patch)
treea4c373ad250dad44caa88497771db46a00178975 /kamon-core/src/main/scala/kamon/trace
parent17ff90ce6e91554b464a9951ddd5e6ffafb4d3ff (diff)
downloadKamon-2f274788aa8c96eed918ef3ddb69de496d5d0346.tar.gz
Kamon-2f274788aa8c96eed918ef3ddb69de496d5d0346.tar.bz2
Kamon-2f274788aa8c96eed918ef3ddb69de496d5d0346.zip
+ core,play,spray: allow segments to identify the library they belong to.
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TraceContext.scala24
1 files changed, 13 insertions, 11 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/TraceContext.scala b/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
index 9555daba..5b74e6b2 100644
--- a/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
+++ b/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
@@ -37,14 +37,15 @@ sealed trait TraceContext {
def isClosed: Boolean = !isOpen
def isEmpty: Boolean
def nonEmpty: Boolean = !isEmpty
- def startSegment(segmentName: String, label: String): Segment
+ def startSegment(segmentName: String, category: String, library: String): Segment
def nanoTimestamp: Long
}
sealed trait Segment {
def name: String
def rename(newName: String): Unit
- def label: String
+ def category: String
+ def library: String
def finish(): Unit
def isEmpty: Boolean
}
@@ -57,12 +58,13 @@ case object EmptyTraceContext extends TraceContext {
def origin: TraceContextOrigin = TraceContextOrigin.Local
def isOpen: Boolean = false
def isEmpty: Boolean = true
- def startSegment(segmentName: String, label: String): Segment = EmptySegment
+ def startSegment(segmentName: String, category: String, library: String): Segment = EmptySegment
def nanoTimestamp: Long = 0L
case object EmptySegment extends Segment {
val name: String = "empty-segment"
- val label: String = "empty-label"
+ val category: String = "empty-category"
+ val library: String = "empty-library"
def isEmpty: Boolean = true
def rename(newName: String): Unit = {}
def finish: Unit = {}
@@ -99,7 +101,7 @@ class DefaultTraceContext(traceName: String, val token: String, izOpen: Boolean,
}
}
- def startSegment(segmentName: String, segmentLabel: String): Segment = new DefaultSegment(segmentName, segmentLabel)
+ def startSegment(segmentName: String, category: String, library: String): Segment = new DefaultSegment(segmentName, category, library)
@tailrec private def drainFinishedSegments(metricRecorder: TraceMetricRecorder): Unit = {
val segment = finishedSegments.poll()
@@ -109,8 +111,8 @@ class DefaultTraceContext(traceName: String, val token: String, izOpen: Boolean,
}
}
- private def finishSegment(segmentName: String, label: String, duration: Long): Unit = {
- finishedSegments.add(SegmentData(SegmentMetricIdentity(segmentName, label), duration))
+ private def finishSegment(segmentName: String, category: String, library: String, duration: Long): Unit = {
+ finishedSegments.add(SegmentData(SegmentMetricIdentity(segmentName, category, library), duration))
if (isClosed) {
metricsExtension.register(TraceMetrics(name), TraceMetrics.Factory).map { traceMetrics ⇒
@@ -119,7 +121,7 @@ class DefaultTraceContext(traceName: String, val token: String, izOpen: Boolean,
}
}
- class DefaultSegment(segmentName: String, val label: String) extends Segment {
+ class DefaultSegment(segmentName: String, val category: String, val library: String) extends Segment {
private val _segmentStartNanoTime = System.nanoTime()
@volatile private var _segmentName = segmentName
@volatile private var _isOpen = true
@@ -130,15 +132,15 @@ class DefaultTraceContext(traceName: String, val token: String, izOpen: Boolean,
def finish: Unit = {
val segmentFinishNanoTime = System.nanoTime()
- finishSegment(name, label, (segmentFinishNanoTime - _segmentStartNanoTime))
+ finishSegment(name, category, library, (segmentFinishNanoTime - _segmentStartNanoTime))
}
}
}
-case class SegmentMetricIdentity(name: String, label: String) extends MetricIdentity
+case class SegmentMetricIdentity(name: String, category: String, library: String) extends MetricIdentity
case class SegmentData(identity: SegmentMetricIdentity, duration: Long)
-object SegmentMetricIdentityLabel {
+object SegmentCategory {
val HttpClient = "http-client"
}