aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/metrics/Metrics.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metrics/Metrics.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/metrics/Metrics.scala14
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) {