package org.stagemonitor.core.metrics; import com.codahale.metrics.Histogram; import com.codahale.metrics.SlidingWindowReservoir; import com.codahale.metrics.Snapshot; /** * An extension of histogram that aggregates multiple snapshots of a histogram to a single value for each metric. */ class AggregatedHistogram extends Histogram { private long count; private AggregatedSnapshot snapshot; public AggregatedHistogram(Histogram histogram) { super(new SlidingWindowReservoir(0)); snapshot = new AggregatedSnapshot(histogram.getSnapshot()); add(histogram); } @Override public void update(int value) { } @Override public void update(long value) { } @Override public long getCount() { return count; } @Override public Snapshot getSnapshot() { return snapshot; } public void add(Histogram histogram) { this.count = histogram.getCount(); snapshot.add(histogram.getSnapshot()); } }