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/TraceMetrics.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/TraceMetrics.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metrics/TraceMetrics.scala | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/kamon-core/src/main/scala/kamon/metrics/TraceMetrics.scala b/kamon-core/src/main/scala/kamon/metrics/TraceMetrics.scala index 66801481..ccffe382 100644 --- a/kamon-core/src/main/scala/kamon/metrics/TraceMetrics.scala +++ b/kamon-core/src/main/scala/kamon/metrics/TraceMetrics.scala @@ -20,12 +20,14 @@ import org.HdrHistogram.HighDynamicRangeRecorder import scala.collection.concurrent.TrieMap import com.typesafe.config.Config -object TraceMetrics extends MetricGroupIdentity.Category with MetricGroupFactory { - type GroupRecorder = TraceMetricRecorder - val entityName = "trace" +case class TraceMetrics(name: String) extends MetricGroupIdentity { + val category = TraceMetrics +} - case object ElapsedTime extends MetricIdentity { val name, tag = "ElapsedTime" } +object TraceMetrics extends MetricGroupCategory { + val name = "trace" + case object ElapsedTime extends MetricIdentity { val name, tag = "ElapsedTime" } case class HttpClientRequest(name: String, tag: String) extends MetricIdentity class TraceMetricRecorder(val elapsedTime: HighDynamicRangeRecorder, private val segmentRecorderFactory: () ⇒ HighDynamicRangeRecorder) @@ -48,14 +50,18 @@ object TraceMetrics extends MetricGroupIdentity.Category with MetricGroupFactory def metrics: Map[MetricIdentity, MetricSnapshot] = segments + (ElapsedTime -> elapsedTime) } - def create(config: Config): TraceMetricRecorder = { - import HighDynamicRangeRecorder.Configuration + val Factory = new MetricGroupFactory { + type GroupRecorder = TraceMetricRecorder - val settings = config.getConfig("kamon.metrics.precision.trace") - val elapsedTimeHdrConfig = Configuration.fromConfig(settings.getConfig("elapsed-time")) - val segmentHdrConfig = Configuration.fromConfig(settings.getConfig("segment")) + def create(config: Config): TraceMetricRecorder = { + import HighDynamicRangeRecorder.Configuration - new TraceMetricRecorder(HighDynamicRangeRecorder(elapsedTimeHdrConfig), () ⇒ HighDynamicRangeRecorder(segmentHdrConfig)) + val settings = config.getConfig("kamon.metrics.precision.trace") + val elapsedTimeHdrConfig = Configuration.fromConfig(settings.getConfig("elapsed-time")) + val segmentHdrConfig = Configuration.fromConfig(settings.getConfig("segment")) + + new TraceMetricRecorder(HighDynamicRangeRecorder(elapsedTimeHdrConfig), () ⇒ HighDynamicRangeRecorder(segmentHdrConfig)) + } } } |