Search in sources :

Example 1 with Issue

use of io.micrometer.core.Issue in project micrometer by micrometer-metrics.

the class CompositeMeterRegistryTest method castingFunctionCounter.

@Issue("#255")
@Test
void castingFunctionCounter() {
    SimpleMeterRegistry registry = new SimpleMeterRegistry();
    CompositeMeterRegistry compositeMeterRegistry = new CompositeMeterRegistry();
    FunctionCounter.builder("foo", 1L, x -> x).register(compositeMeterRegistry);
    compositeMeterRegistry.add(registry);
}
Also used : MeterFilter(io.micrometer.core.instrument.config.MeterFilter) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) Issue(io.micrometer.core.Issue) Collections.emptyList(java.util.Collections.emptyList) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) SimpleConfig(io.micrometer.core.instrument.simple.SimpleConfig) ClockDriftPauseDetector(io.micrometer.core.instrument.distribution.pause.ClockDriftPauseDetector) DisplayName(org.junit.jupiter.api.DisplayName) Test(org.junit.jupiter.api.Test) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) NamingConvention(io.micrometer.core.instrument.config.NamingConvention) Duration(java.time.Duration) io.micrometer.core.instrument(io.micrometer.core.instrument) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) Issue(io.micrometer.core.Issue) Test(org.junit.jupiter.api.Test)

Example 2 with Issue

use of io.micrometer.core.Issue in project micrometer by micrometer-metrics.

the class SimpleMeterRegistryTest method slasOnlyNoPercentileHistogram.

@Issue("#370")
@Test
void slasOnlyNoPercentileHistogram() {
    DistributionSummary summary = DistributionSummary.builder("my.summary").sla(1, 2).register(registry);
    summary.record(1);
    Timer timer = Timer.builder("my.timer").sla(Duration.ofMillis(1)).register(registry);
    timer.record(1, TimeUnit.MILLISECONDS);
    Gauge summaryHist1 = registry.get("my.summary.histogram").tags("le", "1").gauge();
    Gauge summaryHist2 = registry.get("my.summary.histogram").tags("le", "2").gauge();
    Gauge timerHist = registry.get("my.timer.histogram").tags("le", "0.001").gauge();
    assertThat(summaryHist1.value()).isEqualTo(1);
    assertThat(summaryHist2.value()).isEqualTo(1);
    assertThat(timerHist.value()).isEqualTo(1);
    clock.add(SimpleConfig.DEFAULT.step());
    assertThat(summaryHist1.value()).isEqualTo(0);
    assertThat(summaryHist2.value()).isEqualTo(0);
    assertThat(timerHist.value()).isEqualTo(0);
}
Also used : DistributionSummary(io.micrometer.core.instrument.DistributionSummary) Timer(io.micrometer.core.instrument.Timer) Gauge(io.micrometer.core.instrument.Gauge) Issue(io.micrometer.core.Issue) Test(org.junit.jupiter.api.Test)

Example 3 with Issue

use of io.micrometer.core.Issue in project micrometer by micrometer-metrics.

the class CompositeCounterTest method increment.

@Test
@Issue("#119")
void increment() {
    SimpleMeterRegistry simple = new SimpleMeterRegistry(SimpleConfig.DEFAULT, new MockClock());
    CompositeMeterRegistry registry = new CompositeMeterRegistry();
    registry.add(simple);
    registry.counter("counter").increment(2.0);
    assertThat(simple.get("counter").counter().count()).isEqualTo(2.0);
}
Also used : SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MockClock(io.micrometer.core.instrument.MockClock) Issue(io.micrometer.core.Issue) Test(org.junit.jupiter.api.Test)

Example 4 with Issue

use of io.micrometer.core.Issue in project micrometer by micrometer-metrics.

the class ElasticMeterRegistryTest method nullGauge.

@Issue("#497")
@Test
void nullGauge() {
    Gauge g = Gauge.builder("gauge", null, o -> 1).register(registry);
    assertThat(registry.writeGauge(g, 0)).isEmpty();
    TimeGauge tg = TimeGauge.builder("time.gauge", null, TimeUnit.MILLISECONDS, o -> 1).register(registry);
    assertThat(registry.writeGauge(tg, 0)).isEmpty();
}
Also used : Counter(io.micrometer.core.instrument.Counter) Test(org.junit.jupiter.api.Test) TimeUnit(java.util.concurrent.TimeUnit) Issue(io.micrometer.core.Issue) Gauge(io.micrometer.core.instrument.Gauge) MockClock(io.micrometer.core.instrument.MockClock) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) TimeGauge(io.micrometer.core.instrument.TimeGauge) TimeGauge(io.micrometer.core.instrument.TimeGauge) Gauge(io.micrometer.core.instrument.Gauge) TimeGauge(io.micrometer.core.instrument.TimeGauge) Issue(io.micrometer.core.Issue) Test(org.junit.jupiter.api.Test)

Example 5 with Issue

use of io.micrometer.core.Issue in project micrometer by micrometer-metrics.

the class DatadogMeterRegistryTest method encodeMetricName.

@Issue("#463")
@Test
void encodeMetricName() throws InterruptedException {
    DatadogMeterRegistry registry = new DatadogMeterRegistry(new DatadogConfig() {

        @Override
        public String uri() {
            return "http://localhost:3036";
        }

        @Override
        public String get(String key) {
            return null;
        }

        @Override
        public String apiKey() {
            return "fake";
        }

        @Override
        public String applicationKey() {
            return "fake";
        }

        @Override
        public boolean enabled() {
            return false;
        }
    }, Clock.SYSTEM);
    CountDownLatch metadataRequests = new CountDownLatch(1);
    AtomicReference<String> metadataMetricName = new AtomicReference<>();
    Pattern p = Pattern.compile("/api/v1/metrics/([^\\?]+)\\?.*");
    Disposable server = HttpServer.create(3036).newHandler((req, resp) -> {
        Matcher matcher = p.matcher(req.uri());
        if (matcher.matches()) {
            metadataMetricName.set(matcher.group(1));
            metadataRequests.countDown();
        }
        return req.receive().then(resp.status(200).send());
    }).subscribe();
    try {
        registry.counter("my.counter#abc").increment();
        registry.publish();
        metadataRequests.await(10, TimeUnit.SECONDS);
        assertThat(metadataMetricName.get()).isEqualTo("my.counter%23abc");
    } finally {
        server.dispose();
    }
}
Also used : Disposable(reactor.core.Disposable) Test(org.junit.jupiter.api.Test) TimeUnit(java.util.concurrent.TimeUnit) CountDownLatch(java.util.concurrent.CountDownLatch) Issue(io.micrometer.core.Issue) Disposable(reactor.core.Disposable) Matcher(java.util.regex.Matcher) Clock(io.micrometer.core.instrument.Clock) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Pattern(java.util.regex.Pattern) Disabled(org.junit.jupiter.api.Disabled) AtomicReference(java.util.concurrent.atomic.AtomicReference) HttpServer(reactor.ipc.netty.http.server.HttpServer) Pattern(java.util.regex.Pattern) Matcher(java.util.regex.Matcher) AtomicReference(java.util.concurrent.atomic.AtomicReference) CountDownLatch(java.util.concurrent.CountDownLatch) Issue(io.micrometer.core.Issue) Test(org.junit.jupiter.api.Test)

Aggregations

Issue (io.micrometer.core.Issue)10 Test (org.junit.jupiter.api.Test)10 CountDownLatch (java.util.concurrent.CountDownLatch)3 TimeUnit (java.util.concurrent.TimeUnit)3 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)3 Counter (io.micrometer.core.instrument.Counter)2 Gauge (io.micrometer.core.instrument.Gauge)2 MockClock (io.micrometer.core.instrument.MockClock)2 MeterFilter (io.micrometer.core.instrument.config.MeterFilter)2 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)2 Logger (ch.qos.logback.classic.Logger)1 LoggerContext (ch.qos.logback.classic.LoggerContext)1 io.micrometer.core.instrument (io.micrometer.core.instrument)1 Clock (io.micrometer.core.instrument.Clock)1 DistributionSummary (io.micrometer.core.instrument.DistributionSummary)1 TimeGauge (io.micrometer.core.instrument.TimeGauge)1 Timer (io.micrometer.core.instrument.Timer)1 LogbackMetrics (io.micrometer.core.instrument.binder.logging.LogbackMetrics)1 NamingConvention (io.micrometer.core.instrument.config.NamingConvention)1 ClockDriftPauseDetector (io.micrometer.core.instrument.distribution.pause.ClockDriftPauseDetector)1