aboutsummaryrefslogtreecommitdiff
path: root/kamon-statsd/src/main/scala/kamon/statsd/StatsdMetricTranslator.scala
diff options
context:
space:
mode:
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)
}