Search in sources :

Example 1 with Timer

use of io.micrometer.core.instrument.Timer in project vertx-micrometer-metrics by vert-x3.

the class TimersTest method shouldAliasTimerLabel.

@Test
public void shouldAliasTimerLabel() {
    MeterRegistry registry = new SimpleMeterRegistry();
    BackendRegistries.registerMatchers(registry, Collections.singletonList(new Match().setLabel("address").setType(MatchType.REGEX).setValue("addr1").setAlias("1")));
    Timers timers = new Timers("my_timer", "", registry, Label.ADDRESS);
    timers.get("addr1").record(5, TimeUnit.MILLISECONDS);
    timers.get("addr1").record(8, TimeUnit.MILLISECONDS);
    timers.get("addr2").record(10, TimeUnit.MILLISECONDS);
    Timer t = registry.find("my_timer").tags("address", "1").timer();
    assertThat(t.count()).isEqualTo(2);
    assertThat(t.totalTime(TimeUnit.MILLISECONDS)).isEqualTo(13);
    t = registry.find("my_timer").tags("address", "addr1").timer();
    assertThat(t).isNull();
    t = registry.find("my_timer").tags("address", "addr2").timer();
    assertThat(t.count()).isEqualTo(1);
    assertThat(t.totalTime(TimeUnit.MILLISECONDS)).isEqualTo(10);
}
Also used : Timer(io.micrometer.core.instrument.Timer) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Match(io.vertx.micrometer.Match) Test(org.junit.Test)

Example 2 with Timer

use of io.micrometer.core.instrument.Timer in project vertx-micrometer-metrics by vert-x3.

the class TimersTest method shouldIgnoreTimerLabel.

@Test
public void shouldIgnoreTimerLabel() {
    MeterRegistry registry = new SimpleMeterRegistry();
    BackendRegistries.registerMatchers(registry, Collections.singletonList(new Match().setLabel("address").setType(MatchType.REGEX).setValue(".*").setAlias("_")));
    Timers timers = new Timers("my_timer", "", registry, Label.ADDRESS);
    timers.get("addr1").record(5, TimeUnit.MILLISECONDS);
    timers.get("addr1").record(8, TimeUnit.MILLISECONDS);
    timers.get("addr2").record(10, TimeUnit.MILLISECONDS);
    Timer t = registry.find("my_timer").timer();
    assertThat(t.count()).isEqualTo(3);
    assertThat(t.totalTime(TimeUnit.MILLISECONDS)).isEqualTo(23);
    t = registry.find("my_timer").tags("address", "addr1").timer();
    assertThat(t).isNull();
    t = registry.find("my_timer").tags("address", "addr2").timer();
    assertThat(t).isNull();
}
Also used : Timer(io.micrometer.core.instrument.Timer) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Match(io.vertx.micrometer.Match) Test(org.junit.Test)

Example 3 with Timer

use of io.micrometer.core.instrument.Timer in project spring-cloud-stream by spring-cloud.

the class DefaultDestinationPublishingMeterRegistry method publish.

protected void publish() {
    List<Metric<Number>> aggregatedMeters = new ArrayList<>();
    for (Meter meter : this.getMeters()) {
        if (meter instanceof Timer) {
            aggregatedMeters.add(toTimerMetric((Timer) meter));
        } else if (meter instanceof DistributionSummary) {
            aggregatedMeters.add(toSummaryMetric((DistributionSummary) meter));
        }
    }
    if (!aggregatedMeters.isEmpty()) {
        ApplicationMetrics metrics = new ApplicationMetrics(this.applicationProperties.getKey(), aggregatedMeters);
        metrics.setProperties(this.applicationProperties.getExportProperties());
        try {
            String jsonString = this.objectMapper.writeValueAsString(metrics);
            this.metricsConsumer.accept(jsonString);
        } catch (JsonProcessingException e) {
            logger.warn("Error producing JSON String representation metric data", e);
        }
    }
}
Also used : CumulativeDistributionSummary(io.micrometer.core.instrument.cumulative.CumulativeDistributionSummary) DistributionSummary(io.micrometer.core.instrument.DistributionSummary) LongTaskTimer(io.micrometer.core.instrument.LongTaskTimer) CumulativeTimer(io.micrometer.core.instrument.cumulative.CumulativeTimer) Timer(io.micrometer.core.instrument.Timer) FunctionTimer(io.micrometer.core.instrument.FunctionTimer) CumulativeFunctionTimer(io.micrometer.core.instrument.cumulative.CumulativeFunctionTimer) DefaultLongTaskTimer(io.micrometer.core.instrument.internal.DefaultLongTaskTimer) Meter(io.micrometer.core.instrument.Meter) DefaultMeter(io.micrometer.core.instrument.internal.DefaultMeter) ArrayList(java.util.ArrayList) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Example 4 with Timer

use of io.micrometer.core.instrument.Timer in project tutorials by eugenp.

the class MicrometerAtlasTest method givenTimer_whenEnrichWithTimescaleHistogram_thenTimeScaleDataCollected.

@Test
public void givenTimer_whenEnrichWithTimescaleHistogram_thenTimeScaleDataCollected() {
    SimpleMeterRegistry registry = new SimpleMeterRegistry();
    Timer timer = Timer.builder("timer").histogram(Histogram.linearTime(TimeUnit.MILLISECONDS, 0, 200, 3)).register(registry);
    timer.record(1000, TimeUnit.MILLISECONDS);
    timer.record(23, TimeUnit.MILLISECONDS);
    timer.record(450, TimeUnit.MILLISECONDS);
    timer.record(341, TimeUnit.MILLISECONDS);
    timer.record(500, TimeUnit.MILLISECONDS);
    Map<String, Integer> histograms = extractTagValueMap(registry, Type.Counter, 1.0);
    assertThat(histograms, allOf(hasEntry("bucket=0.0", 0), hasEntry("bucket=2.0E8", 1), hasEntry("bucket=4.0E8", 1), hasEntry("bucket=Infinity", 3)));
}
Also used : LongTaskTimer(io.micrometer.core.instrument.LongTaskTimer) Timer(io.micrometer.core.instrument.Timer) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) Test(org.junit.Test)

Example 5 with Timer

use of io.micrometer.core.instrument.Timer in project micrometer by micrometer-metrics.

the class HistogramGaugesTest method snapshotRollsOverAfterEveryPublish.

@Test
void snapshotRollsOverAfterEveryPublish() {
    MeterRegistry registry = new SimpleMeterRegistry();
    Timer timer = Timer.builder("my.timer").sla(Duration.ofMillis(1)).register(registry);
    HistogramGauges gauges = HistogramGauges.registerWithCommonFormat(timer, registry);
    timer.record(1, TimeUnit.MILLISECONDS);
    assertThat(registry.get("my.timer.histogram").gauge().value()).isEqualTo(1);
    assertThat(gauges.polledGaugesLatch.getCount()).isEqualTo(0);
}
Also used : Timer(io.micrometer.core.instrument.Timer) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Test(org.junit.jupiter.api.Test)

Aggregations

Timer (io.micrometer.core.instrument.Timer)26 Test (org.junit.jupiter.api.Test)11 MeterRegistry (io.micrometer.core.instrument.MeterRegistry)9 DisplayName (org.junit.jupiter.api.DisplayName)7 LongTaskTimer (io.micrometer.core.instrument.LongTaskTimer)6 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)6 Duration (java.time.Duration)5 TimeUnit (java.util.concurrent.TimeUnit)5 Test (org.junit.Test)5 Normal (cern.jet.random.Normal)4 MersenneTwister64 (cern.jet.random.engine.MersenneTwister64)4 RandomEngine (cern.jet.random.engine.RandomEngine)4 SampleConfig (io.micrometer.core.samples.utils.SampleConfig)4 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)4 Flux (reactor.core.publisher.Flux)4 FunctionTimer (io.micrometer.core.instrument.FunctionTimer)3 Timed (io.micrometer.core.annotation.Timed)2 DistributionSummary (io.micrometer.core.instrument.DistributionSummary)2 Match (io.vertx.micrometer.Match)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1