aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-12-04 03:20:41 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2014-12-04 03:20:41 +0100
commit0858ddfc94853e603975712c16f6945c01288f9a (patch)
tree277f96a67593d6d6a55e9e5c3e5fb7cdca90778a /kamon-core/src/main/scala/kamon/trace/TraceContext.scala
parentb0077e7f5571a0055b36ddd25e9440163083eb32 (diff)
downloadKamon-0858ddfc94853e603975712c16f6945c01288f9a.tar.gz
Kamon-0858ddfc94853e603975712c16f6945c01288f9a.tar.bz2
Kamon-0858ddfc94853e603975712c16f6945c01288f9a.zip
+ core: cleanup the simple trace implementation
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/TraceContext.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/TraceContext.scala48
1 files changed, 22 insertions, 26 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/TraceContext.scala b/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
index 2c0b38bf..466ceafd 100644
--- a/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
+++ b/kamon-core/src/main/scala/kamon/trace/TraceContext.scala
@@ -17,59 +17,55 @@
package kamon.trace
import java.io.ObjectStreamException
-
import akka.actor.ActorSystem
-import kamon.Kamon
+import kamon._
import kamon.metric._
-import java.util.concurrent.ConcurrentLinkedQueue
import kamon.trace.TraceContextAware.DefaultTraceContextAware
-import kamon.metric.TraceMetrics.TraceMetricRecorder
-
-import scala.annotation.tailrec
trait TraceContext {
def name: String
def token: String
- def rename(name: String): Unit
- def finish(): Unit
def origin: TraceContextOrigin
- def isOpen: Boolean
- def isClosed: Boolean = !isOpen
def isEmpty: Boolean
def nonEmpty: Boolean = !isEmpty
+ def isOpen: Boolean
+ def isClosed: Boolean = !isOpen
+ def system: ActorSystem
+
+ def finish(): Unit
+ def rename(newName: String): Unit
def startSegment(segmentName: String, category: String, library: String): Segment
- def nanoTimestamp: Long
def addMetadata(key: String, value: String)
-
- protected def elapsedNanoTime: Long
+ def startRelativeTimestamp: RelativeNanoTimestamp
}
trait Segment {
def name: String
- def rename(newName: String): Unit
def category: String
def library: String
- def finish(): Unit
+ def isEmpty: Boolean
+ def nonEmpty: Boolean = !isEmpty
def isOpen: Boolean
def isClosed: Boolean = !isOpen
- def isEmpty: Boolean
- def addMetadata(key: String, value: String)
- protected def elapsedNanoTime: Long
+ def finish(): Unit
+ def rename(newName: String): Unit
+ def addMetadata(key: String, value: String)
}
case object EmptyTraceContext extends TraceContext {
def name: String = "empty-trace"
def token: String = ""
- def rename(name: String): Unit = {}
- def finish(): Unit = {}
def origin: TraceContextOrigin = TraceContextOrigin.Local
- def isOpen: Boolean = false
def isEmpty: Boolean = true
+ def isOpen: Boolean = false
+ def system: ActorSystem = sys.error("Can't obtain a ActorSystem from a EmptyTraceContext.")
+
+ def finish(): Unit = {}
+ def rename(name: String): Unit = {}
def startSegment(segmentName: String, category: String, library: String): Segment = EmptySegment
- def nanoTimestamp: Long = 0L
def addMetadata(key: String, value: String): Unit = {}
- def elapsedNanoTime: Long = 0L
+ def startRelativeTimestamp = new RelativeNanoTimestamp(0L)
case object EmptySegment extends Segment {
val name: String = "empty-segment"
@@ -77,15 +73,15 @@ case object EmptyTraceContext extends TraceContext {
val library: String = "empty-library"
def isEmpty: Boolean = true
def isOpen: Boolean = false
- def rename(newName: String): Unit = {}
+
def finish: Unit = {}
+ def rename(newName: String): Unit = {}
def addMetadata(key: String, value: String): Unit = {}
- def elapsedNanoTime: Long = 0L
}
}
case class SegmentMetricIdentity(name: String, category: String, library: String) extends MetricIdentity
-case class SegmentLatencyData(identity: SegmentMetricIdentity, duration: Long)
+case class SegmentLatencyData(identity: SegmentMetricIdentity, duration: NanoInterval)
object SegmentCategory {
val HttpClient = "http-client"