From 0858ddfc94853e603975712c16f6945c01288f9a Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Thu, 4 Dec 2014 03:20:41 +0100 Subject: + core: cleanup the simple trace implementation --- .../src/main/scala/kamon/trace/TraceContext.scala | 48 ++++++++++------------ 1 file changed, 22 insertions(+), 26 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/trace/TraceContext.scala') 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" -- cgit v1.2.3