aboutsummaryrefslogtreecommitdiff
path: root/kamon-statsd/src/main/scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-08-04 23:54:58 -0300
committerIvan Topolnjak <ivantopo@gmail.com>2014-08-04 23:54:58 -0300
commite2c6ad95350ab9e7cd1fba29a6f3279bd80db70c (patch)
treeacbda15ce59eed76d792ba8bad5254759befbff2 /kamon-statsd/src/main/scala
parent8bdf10c22f05f1fe3033a2076fb839e36c966c4d (diff)
parent1256ed00ebb9496bfc67637526cf269acd4ea6fa (diff)
downloadKamon-e2c6ad95350ab9e7cd1fba29a6f3279bd80db70c.tar.gz
Kamon-e2c6ad95350ab9e7cd1fba29a6f3279bd80db70c.tar.bz2
Kamon-e2c6ad95350ab9e7cd1fba29a6f3279bd80db70c.zip
Merge branch 'master' into release-0.2
Conflicts: version.sbt
Diffstat (limited to 'kamon-statsd/src/main/scala')
-rw-r--r--kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala18
1 files changed, 17 insertions, 1 deletions
diff --git a/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala b/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala
index 386b8f92..c37be23b 100644
--- a/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala
+++ b/kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala
@@ -18,6 +18,7 @@ package kamon.statsd
import akka.actor._
import kamon.Kamon
+import kamon.metric.UserMetrics._
import kamon.metric._
import kamon.metrics._
import scala.concurrent.duration._
@@ -51,6 +52,12 @@ class StatsDExtension(system: ExtendedActorSystem) extends Kamon.Extension {
val statsDMetricsListener = buildMetricsListener(tickInterval, flushInterval)
+ // Subscribe to all user metrics
+ Kamon(Metrics)(system).subscribe(UserHistograms, "*", statsDMetricsListener, permanently = true)
+ Kamon(Metrics)(system).subscribe(UserCounters, "*", statsDMetricsListener, permanently = true)
+ Kamon(Metrics)(system).subscribe(UserMinMaxCounters, "*", statsDMetricsListener, permanently = true)
+ Kamon(Metrics)(system).subscribe(UserGauges, "*", statsDMetricsListener, permanently = true)
+
// Subscribe to Actors
val includedActors = statsDConfig.getStringList("includes.actor").asScala
for (actorPathPattern ← includedActors) {
@@ -106,7 +113,16 @@ class SimpleMetricKeyGenerator(config: Config) extends StatsD.MetricKeyGenerator
def generateKey(groupIdentity: MetricGroupIdentity, metricIdentity: MetricIdentity): String = {
val normalizedGroupName = groupIdentity.name.replace(": ", "-").replace(" ", "_").replace("/", "_")
- s"${application}.${normalizedLocalhostName}.${groupIdentity.category.name}.${normalizedGroupName}.${metricIdentity.name}"
+
+ if (isUserMetric(groupIdentity))
+ s"${application}.${normalizedLocalhostName}.${groupIdentity.category.name}.${normalizedGroupName}"
+ else
+ s"${application}.${normalizedLocalhostName}.${groupIdentity.category.name}.${normalizedGroupName}.${metricIdentity.name}"
+ }
+
+ def isUserMetric(groupIdentity: MetricGroupIdentity): Boolean = groupIdentity match {
+ case someUserMetric: UserMetricGroup ⇒ true
+ case everythingElse ⇒ false
}
}