diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-04-06 02:28:45 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-04-06 02:28:45 -0300 |
commit | ed4676be2ae7d1c7cce30931d2bbd8289406acef (patch) | |
tree | bfd89c6fc6533b19abc31c03e1cf1c5aab193c4d /kamon-core/src/main/scala/kamon/metrics/Metrics.scala | |
parent | c60189cb528b98b1ea6dc2ed32ed28eacb9e00c6 (diff) | |
download | Kamon-ed4676be2ae7d1c7cce30931d2bbd8289406acef.tar.gz Kamon-ed4676be2ae7d1c7cce30931d2bbd8289406acef.tar.bz2 Kamon-ed4676be2ae7d1c7cce30931d2bbd8289406acef.zip |
! core: add the notion of instrument types to metric snapshots
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metrics/Metrics.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metrics/Metrics.scala | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/kamon-core/src/main/scala/kamon/metrics/Metrics.scala b/kamon-core/src/main/scala/kamon/metrics/Metrics.scala index b82f429f..f07bf38e 100644 --- a/kamon-core/src/main/scala/kamon/metrics/Metrics.scala +++ b/kamon-core/src/main/scala/kamon/metrics/Metrics.scala @@ -19,6 +19,7 @@ package kamon.metrics import annotation.tailrec import com.typesafe.config.Config import kamon.metrics.MetricSnapshot.Measurement +import kamon.metrics.InstrumentTypes.InstrumentType trait MetricGroupCategory { def name: String @@ -49,7 +50,15 @@ trait MetricRecorder { def collect(): MetricSnapshotLike } +object InstrumentTypes { + sealed trait InstrumentType + case object Histogram extends InstrumentType + case object Gauge extends InstrumentType + case object Counter extends InstrumentType +} + trait MetricSnapshotLike { + def instrumentType: InstrumentType def numberOfMeasurements: Long def scale: Scale def measurements: Vector[Measurement] @@ -92,11 +101,12 @@ trait MetricSnapshotLike { } val totalNrOfMeasurements = go(measurements, that.measurements, 0) - MetricSnapshot(totalNrOfMeasurements, scale, mergedMeasurements.result()) + MetricSnapshot(instrumentType, totalNrOfMeasurements, scale, mergedMeasurements.result()) } } -case class MetricSnapshot(numberOfMeasurements: Long, scale: Scale, measurements: Vector[MetricSnapshot.Measurement]) extends MetricSnapshotLike +case class MetricSnapshot(instrumentType: InstrumentType, numberOfMeasurements: Long, scale: Scale, + measurements: Vector[MetricSnapshot.Measurement]) extends MetricSnapshotLike object MetricSnapshot { case class Measurement(value: Long, count: Long) { |