@Override public void calcMeasurements(List<Measurement> measurements, long msNow, long secondInterval) { long currentCount = count.longValue(); long currentTotalTime = totalTime.longValue(); measurements.add(newMeasurement(idCount, msNow, (double) (currentCount - lastCount) / secondInterval)); measurements .add(newMeasurement(idTotalTime, msNow, (currentTotalTime - lastTotalTime) / secondInterval * CNV_SECONDS)); measurements.add(newMeasurement(idMax, msNow, max.get() * CNV_SECONDS)); lastCount = currentCount; lastTotalTime = currentTotalTime; // maybe lost some max value, but not so important? max.set(0); } }
/** Update the value. */ void set(double v) { value.set(v); }
@Override public void set(double v) { value.set(v); }
@Override public void set(double v) { value.set(v); }
/** Update the value. */ void set(double v) { value.set(v); }
@Override public void set(double v) { value.set(v); }
@Override public void set(double v) { value.set(v); }
@Override public void set(double v) { value.set(v); updateLastModTime(); }
@Override public void set(double v) { value.set(v); lastUpdated.set(clock.wallTime()); }
@Override public void set(double v) { value.set(v); updateLastModTime(); }
@Override public void set(double v) { value.set(v); updateLastModTime(); }
@Override public void set(double v) { value.set(v); lastUpdated.set(clock.wallTime()); }
@Override public void calcMeasurements(List<Measurement> measurements, long msNow, long secondInterval) { long currentCount = count.longValue(); long currentTotalTime = totalTime.longValue(); measurements.add(newMeasurement(idCount, msNow, (double) (currentCount - lastCount) / secondInterval)); measurements .add(newMeasurement(idTotalTime, msNow, (currentTotalTime - lastTotalTime) / secondInterval * CNV_SECONDS)); measurements.add(newMeasurement(idMax, msNow, max.get() * CNV_SECONDS)); lastCount = currentCount; lastTotalTime = currentTotalTime; // maybe lost some max value, but not so important? max.set(0); } }
@Override public void submit(String name, double dValue) { if (name.startsWith("histogram.")) { registry.distributionSummary(stripMetricName(name)).record((long) dValue); } else if (name.startsWith("timer.")) { // Input is in milliseconds. Convert to nanos before casting to long to allow // sub-millisecond durations to be recorded correctly. long value = (long) (dValue * 1e6); registry.timer(stripMetricName(name)).record(value, TimeUnit.NANOSECONDS); } else { final Id id = registry.createId(name); final AtomicDouble gauge = getGaugeStorage(id); gauge.set(dValue); } }
@Test public void set() { AtomicDouble v = new AtomicDouble(13.0); v.set(42.0); Assertions.assertEquals(42.0, v.get(), 1e-12); }