aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala
diff options
context:
space:
mode:
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
+}