diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-04-03 20:48:02 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-04-03 20:48:02 -0300 |
commit | 1f7c5967e0e93b129754d68f494665d35031d971 (patch) | |
tree | c562b2fb9ca2a06a1a9b9908d5ad8f0537fdf8ee /kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala | |
parent | de6a2c9bd6ab6034f59ee51b0eb48beae3d70561 (diff) | |
download | Kamon-1f7c5967e0e93b129754d68f494665d35031d971.tar.gz Kamon-1f7c5967e0e93b129754d68f494665d35031d971.tar.bz2 Kamon-1f7c5967e0e93b129754d68f494665d35031d971.zip |
= statsd: honor the max-packet-size setting and include newline char on multi-metric packets
Diffstat (limited to 'kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala')
-rw-r--r-- | kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala b/kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala index 0ded1394..167e993e 100644 --- a/kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala +++ b/kamon-statsd/src/main/scala/kamon/statsd/Statsd.scala @@ -29,7 +29,6 @@ object StatsD extends ExtensionId[StatsDExtension] with ExtensionIdProvider { override def lookup(): ExtensionId[_ <: Extension] = StatsD override def createExtension(system: ExtendedActorSystem): StatsDExtension = new StatsDExtension(system) - trait MetricKeyGenerator { def generateKey(groupIdentity: MetricGroupIdentity, metricIdentity: MetricIdentity): String } @@ -46,8 +45,8 @@ object StatsD extends ExtensionId[StatsDExtension] with ExtensionIdProvider { * For timing, it provides something like {@code key:millis|ms}. * If sampling rate is less than 1, it provides something like {@code key:value|type|@rate} */ - def toByteString: ByteString = - if(samplingRate >= 1D) + def toByteString(includeTrailingNewline: Boolean = true): ByteString = + if (samplingRate >= 1D) ByteString(s"$key:$value|$suffix") else ByteString(s"$key:$value|$suffix|@$samplingRate") @@ -68,7 +67,6 @@ object StatsD extends ExtensionId[StatsDExtension] with ExtensionIdProvider { case class MetricBatch(metrics: Iterable[Metric]) } - class StatsDExtension(system: ExtendedActorSystem) extends Kamon.Extension { private val statsDConfig = system.settings.config.getConfig("kamon.statsd") @@ -81,16 +79,15 @@ class StatsDExtension(system: ExtendedActorSystem) extends Kamon.Extension { val statsDMetricsListener = buildMetricsListener(tickInterval, flushInterval) val includedActors = statsDConfig.getStringList("includes.actor").asScala - for(actorPathPattern <- includedActors) { + for (actorPathPattern ← includedActors) { Kamon(Metrics)(system).subscribe(ActorMetrics, actorPathPattern, statsDMetricsListener, permanently = true) } - def buildMetricsListener(tickInterval: Long, flushInterval: Long): ActorRef = { assert(flushInterval >= tickInterval, "StatsD flush-interval needs to be equal or greater to the tick-interval") val metricsTranslator = system.actorOf(StatsDMetricTranslator.props, "statsd-metrics-translator") - if(flushInterval == tickInterval) { + if (flushInterval == tickInterval) { // No need to buffer the metrics, let's go straight to the metrics translator. metricsTranslator } else { @@ -99,7 +96,6 @@ class StatsDExtension(system: ExtendedActorSystem) extends Kamon.Extension { } } - class SimpleMetricKeyGenerator(config: Config) extends StatsD.MetricKeyGenerator { val application = config.getString("kamon.statsd.simple-metric-key-generator.application") val localhostName = ManagementFactory.getRuntimeMXBean.getName.split('@')(1) |