From 227c2dfe6cb8b7e175ad72285dfdfbd15672be24 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Wed, 30 Oct 2013 09:04:25 -0300 Subject: move things all over the place --- kamon-core/src/main/scala/kamon/Kamon.scala | 56 ++++++++--------------------- 1 file changed, 15 insertions(+), 41 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/Kamon.scala') diff --git a/kamon-core/src/main/scala/kamon/Kamon.scala b/kamon-core/src/main/scala/kamon/Kamon.scala index fb1b2393..75ef1efe 100644 --- a/kamon-core/src/main/scala/kamon/Kamon.scala +++ b/kamon-core/src/main/scala/kamon/Kamon.scala @@ -1,12 +1,11 @@ package kamon -import akka.actor.{Actor, Props, ActorSystem} +import akka.actor._ import kamon.metric.{HistogramSnapshot, ActorSystemMetrics} import scala.concurrent.duration.FiniteDuration -import com.newrelic.api.agent.NewRelic import scala.collection.concurrent.TrieMap import kamon.instrumentation.{SimpleContextPassingInstrumentation, ActorInstrumentationConfiguration} -import scala.util.DynamicVariable +import kamon.metric.ActorSystemMetrics object Instrument { @@ -14,6 +13,19 @@ object Instrument { } object Kamon { + trait Extension extends akka.actor.Extension { + def manager: ActorRef + } + + def apply[T <: Extension](key: ExtensionId[T])(implicit system: ActorSystem): ActorRef = key(system).manager + + + + + + + + implicit lazy val actorSystem = ActorSystem("kamon") object Metric { @@ -32,18 +44,6 @@ object Kamon { } -object Tracer { - val traceContext = new DynamicVariable[Option[TraceContext]](None) - - - def context() = traceContext.value - def set(ctx: TraceContext) = traceContext.value = Some(ctx) - - def start = set(newTraceContext) - def newTraceContext(): TraceContext = TraceContext()(Kamon.actorSystem) -} - - class MetricManager extends Actor { implicit val ec = context.system.dispatcher @@ -70,29 +70,3 @@ class MetricManager extends Actor { case class RegisterForAllDispatchers(frequency: FiniteDuration) case class DispatcherMetrics(actorSystem: String, dispatcher: String, activeThreads: HistogramSnapshot, poolSize: HistogramSnapshot, queueSize: HistogramSnapshot) - - - - - - -class NewrelicReporterActor extends Actor { - import scala.concurrent.duration._ - - //Kamon.metricManager ! RegisterForAllDispatchers(5 seconds) - - def receive = { - case DispatcherMetrics(actorSystem, dispatcher, activeThreads, poolSize, queueSize) => { - /*println("PUBLISHED DISPATCHER STATS") - println(s"Custom/$actorSystem/Dispatcher/$dispatcher/Threads/active =>" + activeThreads.median.toFloat) - println(s"Custom/$actorSystem/Dispatcher/$dispatcher/Threads/inactive =>" + (poolSize.median.toFloat-activeThreads.median.toFloat)) - println(s"Custom/$actorSystem/Dispatcher/$dispatcher/Queue =>" + queueSize.median.toFloat)*/ - - - NewRelic.recordMetric(s"Custom/$actorSystem/Dispatcher/$dispatcher/Threads/active", activeThreads.median.toFloat) - NewRelic.recordMetric(s"Custom/$actorSystem/Dispatcher/$dispatcher/Threads/inactive", (poolSize.median.toFloat-activeThreads.median.toFloat)) - - NewRelic.recordMetric(s"Custom/$actorSystem/Dispatcher/$dispatcher/Queue", queueSize.median.toFloat) - } - } -} \ No newline at end of file -- cgit v1.2.3