public void record(long nanoAmount) { if (nanoAmount >= 0) { totalTime.add(nanoAmount); count.increment(); max.max(nanoAmount); } }
/** Update the value. */ @Override void set(double v) { value.max(v); } }
@Override public void set(double v) { value.max(v); }
/** Update the value. */ @Override void set(double v) { value.max(v); } }
@Override public void set(double v) { value.max(v); }
@Override public void set(double v) { if (v > 0.0) { value.max(v); updateLastModTime(); } }
public void record(long nanoAmount) { if (nanoAmount >= 0) { totalTime.add(nanoAmount); count.increment(); max.max(nanoAmount); } }
@Override public void set(double v) { if (v > 0.0) { value.max(v); updateLastModTime(); } }
@Override public void record(long amount, TimeUnit unit) { final double seconds = unit.toNanos(amount) / 1e9; if (seconds >= 0.0) { count.incrementAndGet(); totalTime.addAndGet(seconds); totalOfSquares.addAndGet(seconds * seconds); max.max(seconds); updateLastModTime(); } }
@Override public void set(double v) { value.getCurrent().max(v); updateLastModTime(); }
@Override public void record(long amount, TimeUnit unit) { final double seconds = unit.toNanos(amount) / 1e9; if (seconds >= 0.0) { count.incrementAndGet(); totalTime.addAndGet(seconds); totalOfSquares.addAndGet(seconds * seconds); max.max(seconds); updateLastModTime(); } }
@Test public void maxLt() { AtomicDouble v = new AtomicDouble(2.0); v.max(0.0); Assertions.assertEquals(2.0, v.get(), 1e-12); }
@Test public void maxNegative() { AtomicDouble v = new AtomicDouble(-42.0); v.max(-41.0); Assertions.assertEquals(-41.0, v.get(), 1e-12); }
@Test public void maxValueInfinity() { AtomicDouble v = new AtomicDouble(0.0); v.max(Double.POSITIVE_INFINITY); Assertions.assertEquals(0.0, v.get(), 1e-12); } }
@Test public void maxNaN() { AtomicDouble v = new AtomicDouble(Double.NaN); v.max(0.0); Assertions.assertEquals(0.0, v.get(), 1e-12); }
@Test public void maxGt() { AtomicDouble v = new AtomicDouble(0.0); v.max(2.0); Assertions.assertEquals(2.0, v.get(), 1e-12); }
@Test public void maxValueNaN() { AtomicDouble v = new AtomicDouble(0.0); v.max(Double.NaN); Assertions.assertEquals(0.0, v.get(), 1e-12); }
@Override public Gauge maxGauge(Id id) { // Note: micrometer doesn't support this type directly so it uses an arbitrary // window of 1m StepDouble value = new StepDouble(Double.NaN, clock(), 60000L); io.micrometer.core.instrument.Gauge gauge = io.micrometer.core.instrument.Gauge .builder(id.name(), value, StepDouble::poll) .tags(convert(id.tags())) .register(impl); return new MicrometerGauge(id, v -> value.getCurrent().max(v), gauge); }