aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace
diff options
context:
space:
mode:
authorIvan Topolnak <ivantopo@gmail.com>2013-09-25 19:45:54 -0300
committerIvan Topolnak <ivantopo@gmail.com>2013-09-25 19:45:54 -0300
commit604d5801332838f8bea25fe25cb8df5dbb82af08 (patch)
treead107e08888f0aad82899d394ec738c5da29dd5a /kamon-core/src/main/scala/kamon/trace
parent50823a3cc4f6644d569255c7e04423c36eedf295 (diff)
downloadKamon-604d5801332838f8bea25fe25cb8df5dbb82af08.tar.gz
Kamon-604d5801332838f8bea25fe25cb8df5dbb82af08.tar.bz2
Kamon-604d5801332838f8bea25fe25cb8df5dbb82af08.zip
wip
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/UowTracing.scala12
1 files changed, 10 insertions, 2 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/UowTracing.scala b/kamon-core/src/main/scala/kamon/trace/UowTracing.scala
index 8efc46b2..48def942 100644
--- a/kamon-core/src/main/scala/kamon/trace/UowTracing.scala
+++ b/kamon-core/src/main/scala/kamon/trace/UowTracing.scala
@@ -1,8 +1,13 @@
package kamon.trace
-import akka.actor.{Props, ActorRef, Actor}
+import akka.actor._
import kamon.trace.UowTracing.{Start, Finish, Rename}
import scala.concurrent.duration.Duration
+import kamon.trace.UowTracing.Finish
+import kamon.trace.UowTracing.Rename
+import kamon.trace.UowTrace
+import kamon.trace.UowTracing.Start
+import scala.Some
sealed trait UowSegment {
def timestamp: Long
@@ -22,7 +27,7 @@ object UowTracing {
case class UowTrace(name: String, segments: Seq[UowSegment])
-class UowTraceAggregator(reporting: ActorRef, aggregationTimeout: Duration) extends Actor {
+class UowTraceAggregator(reporting: ActorRef, aggregationTimeout: Duration) extends Actor with ActorLogging {
context.setReceiveTimeout(aggregationTimeout)
self ! Start()
@@ -33,6 +38,9 @@ class UowTraceAggregator(reporting: ActorRef, aggregationTimeout: Duration) exte
case finish: Finish => segments = segments :+ finish; finishTracing()
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 = {