@Override protected void serializeStatistics(LongTaskTimer timer, JsonGenerator json, SerializerProvider provider) throws IOException { json.writeNumberField("activeTasks", timer.activeTasks()); json.writeNumberField("duration", timer.duration(timeUnit)); } }
Optional<String> writeLongTaskTimer(LongTaskTimer timer) { return Optional.of(writeDocument(timer, builder -> { builder.append(",\"activeTasks\":").append(timer.activeTasks()); builder.append(",\"duration\":").append(timer.duration(getBaseTimeUnit())); })); }
private Stream<SignalFxProtocolBuffers.DataPoint.Builder> addLongTaskTimer(LongTaskTimer longTaskTimer) { return Stream.of( addDatapoint(longTaskTimer, GAUGE, "activeTasks", longTaskTimer.activeTasks()), addDatapoint(longTaskTimer, COUNTER, "duration", longTaskTimer.duration(getBaseTimeUnit())) ); }
private Stream<TimeSeries> createLongTaskTimer(Batch batch, LongTaskTimer longTaskTimer) { return Stream.of( batch.createTimeSeries(longTaskTimer, longTaskTimer.activeTasks(), "activeTasks"), batch.createTimeSeries(longTaskTimer, longTaskTimer.duration(getBaseTimeUnit()), "duration") ); }
@Nullable private Optional<String> writeLongTaskTimer(LongTaskTimer timer) { int activeTasks = timer.activeTasks(); if (activeTasks > 0) { return Optional.of(write(timer.getId(), "longTaskTimer", Fields.Count.tag(), decimal(activeTasks), Fields.Sum.tag(), decimal(timer.duration(getBaseTimeUnit())))); } return Optional.empty(); }
private Stream<String> writeLongTaskTimer(LongTaskTimer ltt) { return Stream.of( event(ltt.getId(), new Attribute("activeTasks", ltt.activeTasks()), new Attribute("duration", ltt.duration(getBaseTimeUnit()))) ); }
private void announceLongTaskTimer(LongTaskTimer longTaskTimer) { announce(longTaskTimer, longTaskTimer.activeTasks(), "activeTasks"); announce(longTaskTimer, longTaskTimer.duration(getBaseTimeUnit()), "duration"); }
private Stream<MetricDatum> longTaskTimerData(LongTaskTimer longTaskTimer) { return Stream.of( metricDatum(longTaskTimer.getId(), "activeTasks", longTaskTimer.activeTasks()), metricDatum(longTaskTimer.getId(), "duration", longTaskTimer.duration(getBaseTimeUnit()))); }
Stream<String> writeLongTaskTimer(LongTaskTimer timer) { long wallTime = config().clock().wallTime(); return Stream.of( writeMetric(idWithSuffix(timer.getId(), "activeTasks"), wallTime, timer.activeTasks()), writeMetric(idWithSuffix(timer.getId(), "duration"), wallTime, timer.duration(getBaseTimeUnit())) ); }
@Test @DisplayName("total time is preserved for a single timing") default void record(MeterRegistry registry) { LongTaskTimer t = registry.more().longTaskTimer("myTimer"); LongTaskTimer.Sample sample = t.start(); clock(registry).add(10, TimeUnit.NANOSECONDS); assertAll(() -> assertEquals(10, t.duration(TimeUnit.NANOSECONDS)), () -> assertEquals(0.01, t.duration(TimeUnit.MICROSECONDS)), () -> assertEquals(10, sample.duration(TimeUnit.NANOSECONDS)), () -> assertEquals(0.01, sample.duration(TimeUnit.MICROSECONDS)), () -> assertEquals(1, t.activeTasks())); clock(registry).add(10, TimeUnit.NANOSECONDS); sample.stop(); assertAll(() -> assertEquals(0, t.duration(TimeUnit.NANOSECONDS)), () -> assertEquals(-1, sample.duration(TimeUnit.NANOSECONDS)), () -> assertEquals(0, t.activeTasks())); } }