aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-04-06 02:28:45 -0300
committerIvan Topolnjak <ivantopo@gmail.com>2014-04-06 02:28:45 -0300
commited4676be2ae7d1c7cce30931d2bbd8289406acef (patch)
treebfd89c6fc6533b19abc31c03e1cf1c5aab193c4d /kamon-core/src/main/scala
parentc60189cb528b98b1ea6dc2ed32ed28eacb9e00c6 (diff)
downloadKamon-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')
-rw-r--r--kamon-core/src/main/scala/kamon/metrics/Metrics.scala14
-rw-r--r--kamon-core/src/main/scala/kamon/metrics/instruments/HdrRecorder.scala4
2 files changed, 14 insertions, 4 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) {
diff --git a/kamon-core/src/main/scala/kamon/metrics/instruments/HdrRecorder.scala b/kamon-core/src/main/scala/kamon/metrics/instruments/HdrRecorder.scala
index 28520030..ce4fd76d 100644
--- a/kamon-core/src/main/scala/kamon/metrics/instruments/HdrRecorder.scala
+++ b/kamon-core/src/main/scala/kamon/metrics/instruments/HdrRecorder.scala
@@ -18,7 +18,7 @@ package org.HdrHistogram
import java.util.concurrent.atomic.AtomicLongFieldUpdater
import scala.annotation.tailrec
-import kamon.metrics.{ Scale, MetricSnapshot, MetricSnapshotLike, MetricRecorder }
+import kamon.metrics._
/**
* This implementation aims to be used for real time data collection where data snapshots are taken often over time.
@@ -64,7 +64,7 @@ class HdrRecorder(highestTrackableValue: Long, significantValueDigits: Int, scal
while (!tryUpdateTotalCount) {}
- MetricSnapshot(nrOfRecordings, scale, entries.result())
+ MetricSnapshot(InstrumentTypes.Histogram, nrOfRecordings, scale, entries.result())
}
}