Search in sources :

Example 11 with MeterRegistry

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

the class ProcessorMetricsTest method cpuMetrics.

@Test
void cpuMetrics() {
    MeterRegistry registry = new SimpleMeterRegistry();
    new ProcessorMetrics().bindTo(registry);
    assertThat(registry.get("system.cpu.count").gauge().value()).isGreaterThan(0);
    if (System.getProperty("os.name").toLowerCase().contains("win")) {
        assertThat(registry.find("system.load.average.1m").gauge()).describedAs("Not present on windows").isNull();
    } else {
        assertThat(registry.get("system.load.average.1m").gauge().value()).isGreaterThanOrEqualTo(0);
    }
}
Also used : 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)

Example 12 with MeterRegistry

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

the class ProcessorMetricsTest method hotspotCpuMetrics.

@Test
void hotspotCpuMetrics() {
    assumeTrue(classExists("com.sun.management.OperatingSystemMXBean"));
    MeterRegistry registry = new SimpleMeterRegistry();
    new ProcessorMetrics().bindTo(registry);
    assertThat(registry.get("system.cpu.usage").gauge().value()).isGreaterThanOrEqualTo(0);
    assertThat(registry.get("process.cpu.usage").gauge().value()).isGreaterThanOrEqualTo(0);
}
Also used : 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)

Example 13 with MeterRegistry

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

the class CompositeLongTaskTimerTest method mapIdsToEachLongTaskTimerInComposite.

@Test
void mapIdsToEachLongTaskTimerInComposite() {
    MockClock clock = new MockClock();
    MeterRegistry s1 = new SimpleMeterRegistry(SimpleConfig.DEFAULT, clock);
    LongTaskTimer anotherTimer = s1.more().longTaskTimer("long.task");
    LongTaskTimer.Sample anotherSample = anotherTimer.start();
    clock.add(10, TimeUnit.NANOSECONDS);
    CompositeMeterRegistry registry = new CompositeMeterRegistry(clock);
    registry.add(s1);
    LongTaskTimer longTaskTimer = registry.more().longTaskTimer("long.task");
    LongTaskTimer.Sample sample = longTaskTimer.start();
    clock.add(100, TimeUnit.NANOSECONDS);
    assertThat(anotherSample.stop()).isEqualTo(110);
    // if this fails, the composite is using a timer ID that overlaps with a separate timer in a member
    // of the composite rather than mapping the ID to a separate ID in the composite member.
    assertThat(sample.stop()).isEqualTo(100);
}
Also used : SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) LongTaskTimer(io.micrometer.core.instrument.LongTaskTimer) MockClock(io.micrometer.core.instrument.MockClock) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Test(org.junit.jupiter.api.Test)

Example 14 with MeterRegistry

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

the class JvmMemoryMetricsTest method memoryMetrics.

@Test
void memoryMetrics() {
    MeterRegistry registry = new SimpleMeterRegistry();
    new JvmMemoryMetrics().bindTo(registry);
    assertJvmBufferMetrics(registry, "direct");
    assertJvmBufferMetrics(registry, "mapped");
    assertJvmMemoryMetrics(registry, "heap");
    assertJvmMemoryMetrics(registry, "nonheap");
}
Also used : 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)

Example 15 with MeterRegistry

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

the class CounterSample method main.

public static void main(String[] args) {
    MeterRegistry registry = SampleConfig.myMonitoringSystem();
    Counter counter = registry.counter("counter", "method", "actual");
    AtomicInteger n = new AtomicInteger(0);
    registry.more().counter("counter", Tags.of("method", "function"), n);
    RandomEngine r = new MersenneTwister64(0);
    Normal dist = new Normal(0, 1, r);
    Flux.interval(Duration.ofMillis(10)).doOnEach(d -> {
        if (dist.nextDouble() + 0.1 > 0) {
            counter.increment();
            n.incrementAndGet();
        }
    }).blockLast();
}
Also used : Counter(io.micrometer.core.instrument.Counter) Tags(io.micrometer.core.instrument.Tags) Flux(reactor.core.publisher.Flux) RandomEngine(cern.jet.random.engine.RandomEngine) SampleConfig(io.micrometer.core.samples.utils.SampleConfig) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Normal(cern.jet.random.Normal) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Duration(java.time.Duration) MersenneTwister64(cern.jet.random.engine.MersenneTwister64) Counter(io.micrometer.core.instrument.Counter) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) MersenneTwister64(cern.jet.random.engine.MersenneTwister64) RandomEngine(cern.jet.random.engine.RandomEngine) Normal(cern.jet.random.Normal) MeterRegistry(io.micrometer.core.instrument.MeterRegistry)

Aggregations

MeterRegistry (io.micrometer.core.instrument.MeterRegistry)42 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)21 Test (org.junit.jupiter.api.Test)12 Test (org.junit.Test)10 Timer (io.micrometer.core.instrument.Timer)9 Duration (java.time.Duration)9 SampleConfig (io.micrometer.core.samples.utils.SampleConfig)8 Match (io.vertx.micrometer.Match)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)7 Normal (cern.jet.random.Normal)6 MersenneTwister64 (cern.jet.random.engine.MersenneTwister64)6 RandomEngine (cern.jet.random.engine.RandomEngine)6 Gauge (io.micrometer.core.instrument.Gauge)6 Flux (reactor.core.publisher.Flux)6 Counter (io.micrometer.core.instrument.Counter)5 MetricUtils.getName (io.github.resilience4j.micrometer.MetricUtils.getName)4 MeterBinder (io.micrometer.core.instrument.binder.MeterBinder)4 PrometheusMeterRegistry (io.micrometer.prometheus.PrometheusMeterRegistry)4 Objects.requireNonNull (java.util.Objects.requireNonNull)4 TimeUnit (java.util.concurrent.TimeUnit)4