diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-04-27 23:48:39 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-04-27 23:48:39 +0200 |
commit | f5e70695ad0124cd5cd648d186d5174c7b121266 (patch) | |
tree | 0f0f86af677653ce45435c127c545656f45e81df /kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSnapshot.scala | |
parent | 0fe9e267c7cec7a176fc8b0a43e73e12b6606b9f (diff) | |
download | Kamon-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.scala | 44 |
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 +} |