diff options
author | Ivan Topolnak <ivantopo@gmail.com> | 2013-09-18 18:43:11 -0300 |
---|---|---|
committer | Ivan Topolnak <ivantopo@gmail.com> | 2013-09-18 18:43:11 -0300 |
commit | 5168621c256d25d388fb990a5bbc080a35e07b46 (patch) | |
tree | 5ebdbbf2286072bbd47b8e2e9482add5ccf382ad /kamon-core/src/main/scala/kamon/TraceContext.scala | |
parent | d8305b781aaf454cec558bfb86a366682e9f5eab (diff) | |
download | Kamon-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.scala | 20 |
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 } |