aboutsummaryrefslogtreecommitdiff
path: root/kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-04-03 09:21:15 -0300
committerIvan Topolnjak <ivantopo@gmail.com>2014-04-03 09:21:15 -0300
commit0819320d7f20c78ad096c21c6aedb3536758792b (patch)
treecaa0a0a9052663531583d343a7639ef92d335782 /kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala
parent4026aa0269f6aad0bc1acaf837fc51f4f0da504e (diff)
downloadKamon-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.scala28
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)
}