aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-04-27 23:48:39 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2017-04-27 23:48:39 +0200
commitf5e70695ad0124cd5cd648d186d5174c7b121266 (patch)
tree0f0f86af677653ce45435c127c545656f45e81df /kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala
parent0fe9e267c7cec7a176fc8b0a43e73e12b6606b9f (diff)
downloadKamon-f5e70695ad0124cd5cd648d186d5174c7b121266.tar.gz
Kamon-f5e70695ad0124cd5cd648d186d5174c7b121266.tar.bz2
Kamon-f5e70695ad0124cd5cd648d186d5174c7b121266.zip
implement HdrHistogram and Distribution snapshots
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala44
1 files changed, 44 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala b/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala
new file mode 100644
index 00000000..58e10c54
--- /dev/null
+++ b/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala
@@ -0,0 +1,44 @@
+package kamon.metric.instrument
+
+import kamon.util.MeasurementUnit
+
+
+case class SingleValueSnapshot(name: String, measurementUnit: MeasurementUnit, value: Long)
+
+case class DistributionSnapshot(name: String, measurementUnit: MeasurementUnit, dynamicRange: DynamicRange, distribution: Distribution)
+
+trait DistributionSnapshotInstrument {
+ def snapshot(): DistributionSnapshot
+}
+
+trait SingleValueSnapshotInstrument {
+ def snapshot(): SingleValueSnapshot
+}
+
+
+
+
+trait Distribution {
+ def buckets: Seq[Bucket]
+ def bucketsIterator: Iterator[Bucket]
+
+ def min: Long
+ def max: Long
+ def sum: Long
+ def count: Long
+ def percentile(p: Double): Percentile
+
+ def percentiles: Seq[Percentile]
+ def percentilesIterator: Iterator[Percentile]
+}
+
+trait Bucket {
+ def value: Long
+ def frequency: Long
+}
+
+trait Percentile {
+ def quantile: Double
+ def value: Long
+ def countUnderQuantile: Long
+}