aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace
diff options
context:
space:
mode:
authorIvan Topolnak <ivantopo@gmail.com>2013-11-04 18:11:16 -0300
committerIvan Topolnak <ivantopo@gmail.com>2013-11-04 18:11:16 -0300
commit5127c3bb83cd6fe90e071720d995cfb53d913e6a (patch)
treea29cc7be7f729566f3a5a2fc3bc8044c7f47f3cc /kamon-core/src/main/scala/kamon/trace
parentca1e93621ddad4b9f2a9028ea183b1c2f4c25a27 (diff)
downloadKamon-5127c3bb83cd6fe90e071720d995cfb53d913e6a.tar.gz
Kamon-5127c3bb83cd6fe90e071720d995cfb53d913e6a.tar.bz2
Kamon-5127c3bb83cd6fe90e071720d995cfb53d913e6a.zip
wip
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/UowTracing.scala57
1 files changed, 0 insertions, 57 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/UowTracing.scala b/kamon-core/src/main/scala/kamon/trace/UowTracing.scala
deleted file mode 100644
index b09478cc..00000000
--- a/kamon-core/src/main/scala/kamon/trace/UowTracing.scala
+++ /dev/null
@@ -1,57 +0,0 @@
-package kamon.trace
-
-import akka.actor._
-import scala.concurrent.duration.Duration
-import kamon.trace.UowTracing._
-
-sealed trait UowSegment {
- def timestamp: Long
-}
-
-trait AutoTimestamp extends UowSegment {
- val timestamp = System.nanoTime
-}
-
-object UowTracing {
- case class Start() extends AutoTimestamp
- case class Finish() extends AutoTimestamp
- case class Rename(name: String) extends AutoTimestamp
- case class WebExternalStart(id: Long, host: String) extends AutoTimestamp
- case class WebExternalFinish(id: Long) extends AutoTimestamp
- case class WebExternal(start: Long, finish: Long, host: String) extends AutoTimestamp
-}
-
-case class UowTrace(name: String, segments: Seq[UowSegment])
-
-
-class UowTraceAggregator(reporting: ActorRef, aggregationTimeout: Duration) extends Actor with ActorLogging {
- context.setReceiveTimeout(aggregationTimeout)
-
- var name: Option[String] = None
- var segments: Seq[UowSegment] = Nil
-
- var pendingExternal = List[WebExternalStart]()
-
- def receive = {
- case finish: Finish => segments = segments :+ finish; finishTracing()
- case wes: WebExternalStart => pendingExternal = pendingExternal :+ wes
- case finish @ WebExternalFinish(id) => pendingExternal.find(_.id == id).map(start => {
- segments = segments :+ WebExternal(start.timestamp, finish.timestamp, start.host)
- })
- case Rename(newName) => name = Some(newName)
- case segment: UowSegment => segments = segments :+ segment
- case ReceiveTimeout =>
- log.warning("Transaction {} did not complete properly, the recorded segments are: {}", name, segments)
- context.stop(self)
- }
-
- def finishTracing(): Unit = {
- reporting ! UowTrace(name.getOrElse("UNKNOWN"), segments)
- println("Recorded Segments: " + segments)
- context.stop(self)
- }
-}
-
-object UowTraceAggregator {
- def props(reporting: ActorRef, aggregationTimeout: Duration) = Props(classOf[UowTraceAggregator], reporting, aggregationTimeout)
-} \ No newline at end of file