diff options
author | Ivan Topolnak <itopolnak@despegar.com> | 2014-02-03 18:10:08 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-02-04 09:18:08 -0300 |
commit | 462c41f32d9e9c3fd84d973a4b3ea4678537987b (patch) | |
tree | 47225d29f634e7a536efc7060d0740d5e7a575d7 /kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala | |
parent | 6b44762a034df9f63f6616b11762fb4ebaf92508 (diff) | |
download | Kamon-462c41f32d9e9c3fd84d973a4b3ea4678537987b.tar.gz Kamon-462c41f32d9e9c3fd84d973a4b3ea4678537987b.tar.bz2 Kamon-462c41f32d9e9c3fd84d973a4b3ea4678537987b.zip |
create the notion of a metric group category for easier filtering when subscribing
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala b/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala index a00b443e..4c8752e5 100644 --- a/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala +++ b/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala @@ -20,9 +20,12 @@ import com.typesafe.config.Config import kamon.metrics.instruments.ContinuousHighDynamicRangeRecorder import org.HdrHistogram.HighDynamicRangeRecorder -object ActorMetrics extends MetricGroupIdentity.Category with MetricGroupFactory { - type GroupRecorder = ActorMetricRecorder - val entityName = "actor" +case class ActorMetrics(name: String) extends MetricGroupIdentity { + val category = ActorMetrics +} + +object ActorMetrics extends MetricGroupCategory { + val name = "actor" case object ProcessingTime extends MetricIdentity { val name, tag = "ProcessingTime" } case object MailboxSize extends MetricIdentity { val name, tag = "MailboxSize" } @@ -51,17 +54,21 @@ object ActorMetrics extends MetricGroupIdentity.Category with MetricGroupFactory (TimeInMailbox -> timeInMailbox)) } - def create(config: Config): ActorMetricRecorder = { - import HighDynamicRangeRecorder.Configuration + val Factory = new MetricGroupFactory { + type GroupRecorder = ActorMetricRecorder - val settings = config.getConfig("kamon.metrics.precision.actor") - val processingTimeHdrConfig = Configuration.fromConfig(settings.getConfig("processing-time")) - val mailboxSizeHdrConfig = Configuration.fromConfig(settings.getConfig("mailbox-size")) - val timeInMailboxHdrConfig = Configuration.fromConfig(settings.getConfig("time-in-mailbox")) + def create(config: Config): ActorMetricRecorder = { + import HighDynamicRangeRecorder.Configuration - new ActorMetricRecorder( - HighDynamicRangeRecorder(processingTimeHdrConfig), - ContinuousHighDynamicRangeRecorder(mailboxSizeHdrConfig), - HighDynamicRangeRecorder(timeInMailboxHdrConfig)) + val settings = config.getConfig("kamon.metrics.precision.actor") + val processingTimeHdrConfig = Configuration.fromConfig(settings.getConfig("processing-time")) + val mailboxSizeHdrConfig = Configuration.fromConfig(settings.getConfig("mailbox-size")) + val timeInMailboxHdrConfig = Configuration.fromConfig(settings.getConfig("time-in-mailbox")) + + new ActorMetricRecorder( + HighDynamicRangeRecorder(processingTimeHdrConfig), + ContinuousHighDynamicRangeRecorder(mailboxSizeHdrConfig), + HighDynamicRangeRecorder(timeInMailboxHdrConfig)) + } } } |