aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/metric/Accumulator.scala
blob: b87f5530ec2aa22c2623026c43bbe3d459e3138a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
}