From b03b74291b60e9882e815d7823221eacbbf3cfca Mon Sep 17 00:00:00 2001 From: Diego Parra Date: Fri, 23 Aug 2013 04:19:17 -0300 Subject: WIP:first implementation of Kamon Dashboard --- kamon-core/src/main/scala/kamon/Kamon.scala | 12 ++++++------ kamon-core/src/main/scala/kamon/executor/eventbus.scala | 6 +++--- .../kamon/instrumentation/ActorRefTellInstrumentation.scala | 3 +-- kamon-core/src/main/scala/kamon/metric/Metrics.scala | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) (limited to 'kamon-core/src/main/scala') diff --git a/kamon-core/src/main/scala/kamon/Kamon.scala b/kamon-core/src/main/scala/kamon/Kamon.scala index 07773c55..298f43eb 100644 --- a/kamon-core/src/main/scala/kamon/Kamon.scala +++ b/kamon-core/src/main/scala/kamon/Kamon.scala @@ -1,17 +1,17 @@ package kamon import akka.actor.{Actor, Props, ActorSystem} -import scala.collection.JavaConverters._ -import java.util.concurrent.ConcurrentHashMap -import kamon.metric.{HistogramSnapshot, Histogram, Atomic, ActorSystemMetrics} -import scala.concurrent.duration.{FiniteDuration, Duration} +import kamon.metric.{HistogramSnapshot, ActorSystemMetrics} +import scala.concurrent.duration.FiniteDuration import com.newrelic.api.agent.NewRelic +import scala.collection.concurrent.TrieMap object Kamon { implicit lazy val actorSystem = ActorSystem("kamon") object Metric { - val actorSystems = new ConcurrentHashMap[String, ActorSystemMetrics] asScala + + val actorSystems = TrieMap.empty[String, ActorSystemMetrics] def actorSystemNames: List[String] = actorSystems.keys.toList def registerActorSystem(name: String) = actorSystems.getOrElseUpdate(name, ActorSystemMetrics(name)) @@ -34,7 +34,7 @@ object Tracer { def clear = ctx.remove() def set(traceContext: TraceContext) = ctx.set(Some(traceContext)) - def start = ??? //set(newTraceContext) + def start = set(newTraceContext) def stop = ctx.get match { case Some(context) => context.close case None => diff --git a/kamon-core/src/main/scala/kamon/executor/eventbus.scala b/kamon-core/src/main/scala/kamon/executor/eventbus.scala index 33ff4a4e..a1c099d4 100644 --- a/kamon-core/src/main/scala/kamon/executor/eventbus.scala +++ b/kamon-core/src/main/scala/kamon/executor/eventbus.scala @@ -36,7 +36,7 @@ case class Pong() class PingActor extends Actor with ActorLogging { - val pong = context.actorOf(Props[PongActor]) + val pong = context.actorOf(Props[PongActor], "Pong") val random = new Random() def receive = { case Pong() => { @@ -68,7 +68,7 @@ object TryAkka extends App{ Tracer.start for(i <- 1 to 4) { - val ping = system.actorOf(Props[PingActor]) + val ping = system.actorOf(Props[PingActor], "Ping" + i) ping ! Pong() } @@ -86,7 +86,7 @@ object TryAkka extends App{ - Tracer.start + //Tracer.start Tracer.context.get.append(CodeBlockExecutionTime("some-block", System.nanoTime(), System.nanoTime())) threadPrintln("Before doing it") diff --git a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala index 36dd9d0b..212eab2c 100644 --- a/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala +++ b/kamon-core/src/main/scala/kamon/instrumentation/ActorRefTellInstrumentation.scala @@ -5,9 +5,8 @@ import org.aspectj.lang.ProceedingJoinPoint import akka.actor.{Props, ActorSystem, ActorRef} import kamon.{Tracer, TraceContext} import akka.dispatch.{MessageDispatcher, Envelope} -import com.codahale.metrics.{Timer, ExponentiallyDecayingReservoir, Histogram} +import com.codahale.metrics.Timer import kamon.metric.{MetricDirectory, Metrics} -import com.codahale.metrics import scala.Some case class TraceableMessage(traceContext: Option[TraceContext], message: Any, timer: Timer.Context) diff --git a/kamon-core/src/main/scala/kamon/metric/Metrics.scala b/kamon-core/src/main/scala/kamon/metric/Metrics.scala index cdc0a334..edf532ae 100644 --- a/kamon-core/src/main/scala/kamon/metric/Metrics.scala +++ b/kamon-core/src/main/scala/kamon/metric/Metrics.scala @@ -1,9 +1,10 @@ package kamon.metric -import java.util.concurrent.{ConcurrentHashMap, ConcurrentSkipListSet, TimeUnit} +import java.util.concurrent.TimeUnit import akka.actor.ActorRef import com.codahale.metrics import com.codahale.metrics.{MetricFilter, Metric, ConsoleReporter, MetricRegistry} +import scala.collection.concurrent.TrieMap object Metrics { @@ -85,8 +86,7 @@ trait HistogramSnapshot { case class ActorSystemMetrics(actorSystemName: String) { - import scala.collection.JavaConverters._ - val dispatchers = new ConcurrentHashMap[String, DispatcherMetricCollector] asScala + val dispatchers = TrieMap.empty[String, DispatcherMetricCollector] private[this] def createDispatcherCollector: DispatcherMetricCollector = DispatcherMetricCollector(CodahaleHistogram(), CodahaleHistogram(), CodahaleHistogram()) -- cgit v1.2.3