@Override public Iterable<Measurement> measure() { if (count.get() == 0) { return Collections.emptyList(); } else { List<Measurement> ms = new ArrayList<>(4); ms.add(newMeasurement(stats[0], count::getAndSet)); ms.add(newMeasurement(stats[1], totalAmount::getAndSet)); ms.add(newMeasurement(stats[2], totalOfSquares::getAndSet)); ms.add(newMeasurement(stats[3], max::getAndSet)); return ms; } }
@Override public void record(long amount) { if (amount >= 0) { count.incrementAndGet(); totalAmount.addAndGet(amount); totalOfSquares.addAndGet(1.0 * amount * amount); updateMax(amount); updateLastModTime(); } }
@Override protected DistributionSummary newDistributionSummary(Id id) { return new StatelessDistributionSummary(id, clock(), meterTTL); }
@Override protected DistributionSummary newDistributionSummary(Id id) { return new StatelessDistributionSummary(id, clock(), meterTTL); }
@Override public void record(long amount) { if (amount >= 0) { count.incrementAndGet(); totalAmount.addAndGet(amount); totalOfSquares.addAndGet(1.0 * amount * amount); updateMax(amount); updateLastModTime(); } }
@Override public Iterable<Measurement> measure() { if (count.get() == 0) { return Collections.emptyList(); } else { List<Measurement> ms = new ArrayList<>(4); ms.add(newMeasurement(stats[0], count::getAndSet)); ms.add(newMeasurement(stats[1], totalAmount::getAndSet)); ms.add(newMeasurement(stats[2], totalOfSquares::getAndSet)); ms.add(newMeasurement(stats[3], max::getAndSet)); return ms; } }