public void micrometerHistogram(MicrometerState state, Data data) { state.summary.record(data.dataIterator.next()); }
@Override public void request(long l) { if (Operators.validate(l)) { if (requestedCounter != null) { requestedCounter.record(l); } s.request(l); } }
@Benchmark public void micrometerPlainHistogram(MicrometerPlainSummaryState state, Data data) { state.summary.record(1); }
private static void onResponse(RequestLog log, MeterIdPrefixFunction meterIdPrefixFunction, ActiveRequestMetrics activeRequestMetrics) { final RequestContext ctx = log.context(); final MeterRegistry registry = ctx.meterRegistry(); final MeterIdPrefix idPrefix = meterIdPrefixFunction.apply(registry, log); final RequestMetrics metrics = MicrometerUtil.register( registry, idPrefix, RequestMetrics.class, DefaultRequestMetrics::new); if (log.requestCause() != null) { metrics.failure().increment(); return; } metrics.requestDuration().record(log.requestDurationNanos(), TimeUnit.NANOSECONDS); metrics.requestLength().record(log.requestLength()); metrics.responseDuration().record(log.responseDurationNanos(), TimeUnit.NANOSECONDS); metrics.responseLength().record(log.responseLength()); metrics.totalDuration().record(log.totalDurationNanos(), TimeUnit.NANOSECONDS); if (isSuccess(log)) { metrics.success().increment(); } else { metrics.failure().increment(); } activeRequestMetrics.decrement(); }
@Override public void record(long amount) { impl.record(amount); }
@Override public void request(long l) { if (Operators.validate(l)) { if (requestedCounter != null) { requestedCounter.record(l); } s.request(l); } }
@Override public void bytesRead(Void socketMetric, SocketAddress remoteAddress, long numberOfBytes) { if (localAddress != null) { bytesReceived.get(localAddress).record(numberOfBytes); } }
@Override public void bytesWritten(String remote, SocketAddress remoteAddress, long numberOfBytes) { bytesSent.get(local, remote).record(numberOfBytes); }
@Override public void bytesWritten(String remote, SocketAddress remoteAddress, long numberOfBytes) { bytesSent.get(local, remote).record(numberOfBytes); }
@Override public void bytesWritten(Void socketMetric, SocketAddress remoteAddress, long numberOfBytes) { bytesSent.get().record(numberOfBytes); }
@Override public void bytesRead(String remote, SocketAddress remoteAddress, long numberOfBytes) { bytesReceived.get(local, remote).record(numberOfBytes); }
@Override public void messageRead(String address, int numberOfBytes) { if (!isInternal(address)) { bytesRead.get(address).record(numberOfBytes); } }
@Override public void messageWritten(String address, int numberOfBytes) { if (!isInternal(address)) { bytesWritten.get(address).record(numberOfBytes); } }
@Override protected void doProcess(Exchange exchange, MicrometerEndpoint endpoint, DistributionSummary summary) { Double value = simple(exchange, endpoint.getValue(), Double.class); Double finalValue = getDoubleHeader(exchange.getIn(), HEADER_HISTOGRAM_VALUE, value); if (finalValue != null) { summary.record(finalValue); } else { LOG.warn("Cannot update histogram \"{}\" with null value", summary.getId().getName()); } } }
@Deprecated @Test default void histogramCounts(MeterRegistry registry) { DistributionSummary s = DistributionSummary.builder("my.summmary") .sla(1) .register(registry); s.record(1); assertThat(s.histogramCountAtValue(1)).isEqualTo(1); assertThat(s.histogramCountAtValue(2)).isEqualTo(Double.NaN); } }
@Deprecated @Test default void percentiles(MeterRegistry registry) { DistributionSummary s = DistributionSummary.builder("my.summary") .publishPercentiles(1) .register(registry); s.record(1); assertThat(s.percentile(1)).isEqualTo(1, Offset.offset(0.3)); assertThat(s.percentile(0.5)).isEqualTo(Double.NaN); }
public void markSuccessMetrics(String roadName, long avroBytes) { Iterable<Tag> tags = singleton(Tag.of(ROAD, roadName)); registry.counter("onramp.send-success", tags).increment(); DistributionSummary .builder("onramp.message-size") .tags(tags) .publishPercentileHistogram() .register(registry) .record(avroBytes); }
@Test @DisplayName("scale samples by a fixed factor") default void scale(MeterRegistry registry) { DistributionSummary ds = DistributionSummary.builder("my.summary") .scale(2.0) .register(registry); ds.record(1); clock(registry).add(step()); assertThat(ds.totalAmount()).isEqualTo(2.0); }
@Test @DisplayName("negative quantities are ignored") default void recordNegative(MeterRegistry registry) { DistributionSummary ds = registry.summary("my.summary"); ds.record(-10); assertAll(() -> assertEquals(0, ds.count()), () -> assertEquals(0L, ds.totalAmount())); }
@Test @DisplayName("record zero") default void recordZero(MeterRegistry registry) { DistributionSummary ds = registry.summary("my.summary"); ds.record(0); clock(registry).add(step()); assertAll(() -> assertEquals(1L, ds.count()), () -> assertEquals(0L, ds.totalAmount())); }