aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/TraceContext.scala
diff options
context:
space:
mode:
authorIvan Topolnak <ivantopo@gmail.com>2013-09-18 18:43:11 -0300
committerIvan Topolnak <ivantopo@gmail.com>2013-09-18 18:43:11 -0300
commit5168621c256d25d388fb990a5bbc080a35e07b46 (patch)
tree5ebdbbf2286072bbd47b8e2e9482add5ccf382ad /kamon-core/src/main/scala/kamon/TraceContext.scala
parentd8305b781aaf454cec558bfb86a366682e9f5eab (diff)
downloadKamon-5168621c256d25d388fb990a5bbc080a35e07b46.tar.gz
Kamon-5168621c256d25d388fb990a5bbc080a35e07b46.tar.bz2
Kamon-5168621c256d25d388fb990a5bbc080a35e07b46.zip
basic newrelic reporting
Diffstat (limited to 'kamon-core/src/main/scala/kamon/TraceContext.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/TraceContext.scala20
1 files changed, 11 insertions, 9 deletions
diff --git a/kamon-core/src/main/scala/kamon/TraceContext.scala b/kamon-core/src/main/scala/kamon/TraceContext.scala
index 62d7f57e..a1476ae0 100644
--- a/kamon-core/src/main/scala/kamon/TraceContext.scala
+++ b/kamon-core/src/main/scala/kamon/TraceContext.scala
@@ -2,14 +2,14 @@ package kamon
import java.util.UUID
import akka.actor._
-import akka.agent.Agent
-import java.util.concurrent.TimeUnit
-import scala.util.{Failure, Success}
-import akka.util.Timeout
-
-
-case class TraceContext(id: UUID, entries: ActorRef, userContext: Option[Any] = None) {
- implicit val timeout = Timeout(30, TimeUnit.SECONDS)
+import java.util.concurrent.atomic.AtomicLong
+import kamon.trace.UowTraceAggregator
+import scala.concurrent.duration._
+import kamon.newrelic.NewRelicReporting
+
+// TODO: Decide if we need or not an ID, generating it takes time and it doesn't seem necessary.
+case class TraceContext(id: Long, entries: ActorRef, userContext: Option[Any] = None) {
+ //implicit val timeout = Timeout(30, TimeUnit.SECONDS)
implicit val as = Kamon.actorSystem.dispatcher
def append(entry: TraceEntry) = entries ! entry
@@ -17,7 +17,9 @@ case class TraceContext(id: UUID, entries: ActorRef, userContext: Option[Any] =
}
object TraceContext {
- def apply()(implicit system: ActorSystem) = new TraceContext(UUID.randomUUID(), system.actorOf(Props[TraceAccumulator])) // TODO: Move to a kamon specific supervisor, like /user/kamon/tracer
+ val reporter = Kamon.actorSystem.actorOf(Props[NewRelicReporting])
+ val traceIdCounter = new AtomicLong
+ def apply()(implicit system: ActorSystem) = new TraceContext(100, system.actorOf(UowTraceAggregator.props(reporter, 30 seconds))) // TODO: Move to a kamon specific supervisor, like /user/kamon/tracer
}