aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/metric/Accumulator.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metric/Accumulator.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/metric/Accumulator.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/metric/Accumulator.scala b/kamon-core/src/main/scala/kamon/metric/Accumulator.scala
new file mode 100644
index 00000000..b87f5530
--- /dev/null
+++ b/kamon-core/src/main/scala/kamon/metric/Accumulator.scala
@@ -0,0 +1,17 @@
+package kamon.metric
+
+import kamon.util.MeasurementUnit
+
+
+class DistributionAccumulator(dynamicRange: DynamicRange) {
+ private val accumulatorHistogram = new HdrHistogram("metric-distribution-accumulator",
+ tags = Map.empty, measurementUnit = MeasurementUnit.none, dynamicRange)
+
+
+ def add(distribution: Distribution): Unit = {
+ distribution.bucketsIterator.foreach(b => accumulatorHistogram.record(b.value, b.frequency))
+ }
+
+ def result(): Distribution =
+ accumulatorHistogram.snapshot().distribution
+}