diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-04-03 09:21:15 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-04-03 09:21:15 -0300 |
commit | 0819320d7f20c78ad096c21c6aedb3536758792b (patch) | |
tree | caa0a0a9052663531583d343a7639ef92d335782 /kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala | |
parent | 4026aa0269f6aad0bc1acaf837fc51f4f0da504e (diff) | |
download | Kamon-0819320d7f20c78ad096c21c6aedb3536758792b.tar.gz Kamon-0819320d7f20c78ad096c21c6aedb3536758792b.tar.bz2 Kamon-0819320d7f20c78ad096c21c6aedb3536758792b.zip |
minor reorganization and includes filter
Diffstat (limited to 'kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala')
-rw-r--r-- | kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala b/kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala index a08450c5..6a4c8d56 100644 --- a/kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala +++ b/kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala @@ -18,20 +18,36 @@ package kamon.statsd import akka.actor.{ Props, Actor, ActorRef } import kamon.metrics._ import kamon.metrics.Subscriptions.TickMetricSnapshot +import kamon.metrics.ActorMetrics.ActorMetricSnapshot + +class StatsDMetricTranslator extends Actor { + //val metricsSender = -class StatsdMetricTranslator(receiver: ActorRef) extends Actor { def receive = { case TickMetricSnapshot(from, to, metrics) ⇒ - collectAllMetrics(metrics) - receiver ! "" + + } - def collectAllMetrics(metrics: Map[MetricGroupIdentity, MetricGroupSnapshot]) = { + def transformActorMetric(actorIdentity: ActorMetrics, snapshot: ActorMetricSnapshot): Vector[StatsD.Metric] = { + // TODO: Define metrics namespacing. + roll(actorIdentity.name, snapshot.timeInMailbox, StatsD.Timing) + } + def roll(key: String, snapshot: MetricSnapshotLike, metricBuilder: (String, Long, Double) => StatsD.Metric): Vector[StatsD.Metric] = { + val builder = Vector.newBuilder[StatsD.Metric] + for(measurement <- snapshot.measurements) { + val samplingRate = 1D / measurement.count + builder += metricBuilder.apply(key, measurement.value, samplingRate) + } + + builder.result() } + + } -object StatsdMetricTranslator { - def props(receiver: ActorRef): Props = Props(new StatsdMetricTranslator(receiver)) +object StatsDMetricTranslator { + def props: Props = Props(new StatsDMetricTranslator) } |