Search in sources :

Example 26 with Tags

use of io.micrometer.core.instrument.Tags in project reactor-core by reactor.

the class FluxMetricsFuseableTest method completeEmptyAsyncFusion.

@Test
public void completeEmptyAsyncFusion() {
    Flux<Integer> source = Flux.range(1, 10).filter(i -> i > 100).onBackpressureBuffer();
    StepVerifier.create(new FluxMetricsFuseable<>(source)).expectFusion(Fuseable.ASYNC).verifyComplete();
    Timer stcCompleteCounter = registry.find(REACTOR_DEFAULT_NAME + METER_FLOW_DURATION).tags(Tags.of(TAG_ON_COMPLETE)).timer();
    Timer stcCompleteEmptyCounter = registry.find(REACTOR_DEFAULT_NAME + METER_FLOW_DURATION).tags(Tags.of(TAG_ON_COMPLETE_EMPTY)).timer();
    assertThat(stcCompleteCounter).as("complete with element").isNull();
    assertThat(stcCompleteEmptyCounter).as("complete without any element").isNotNull().satisfies(timer -> assertThat(timer.count()).as("timer count").isOne());
}
Also used : Metrics(reactor.util.Metrics) BeforeEach(org.junit.jupiter.api.BeforeEach) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) SoftAssertions(org.assertj.core.api.SoftAssertions) StepVerifier(reactor.test.StepVerifier) MockClock(io.micrometer.core.instrument.MockClock) Scannable(reactor.core.Scannable) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) AtomicReference(java.util.concurrent.atomic.AtomicReference) Timer(io.micrometer.core.instrument.Timer) Duration(java.time.Duration) Counter(io.micrometer.core.instrument.Counter) Tags(io.micrometer.core.instrument.Tags) Assertions.assertThatIllegalStateException(org.assertj.core.api.Assertions.assertThatIllegalStateException) Clock(io.micrometer.core.instrument.Clock) SimpleConfig(io.micrometer.core.instrument.simple.SimpleConfig) TAG_ON_COMPLETE_EMPTY(reactor.core.publisher.FluxMetrics.TAG_ON_COMPLETE_EMPTY) FluxMetrics(reactor.core.publisher.FluxMetrics) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) AfterEach(org.junit.jupiter.api.AfterEach) Fuseable(reactor.core.Fuseable) DistributionSummary(io.micrometer.core.instrument.DistributionSummary) MeterRegistry(io.micrometer.core.instrument.MeterRegistry) Subscription(org.reactivestreams.Subscription) AssertSubscriber(reactor.test.subscriber.AssertSubscriber) Assertions.assertThatCode(org.assertj.core.api.Assertions.assertThatCode) Timer(io.micrometer.core.instrument.Timer) Test(org.junit.jupiter.api.Test)

Aggregations

Tags (io.micrometer.core.instrument.Tags)26 MeterRegistry (io.micrometer.core.instrument.MeterRegistry)10 Test (org.junit.jupiter.api.Test)9 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)7 Timer (io.micrometer.core.instrument.Timer)6 Clock (io.micrometer.core.instrument.Clock)5 Counter (io.micrometer.core.instrument.Counter)5 DistributionSummary (io.micrometer.core.instrument.DistributionSummary)5 TimeUnit (java.util.concurrent.TimeUnit)5 AtomicReference (java.util.concurrent.atomic.AtomicReference)5 MockClock (io.micrometer.core.instrument.MockClock)4 SimpleConfig (io.micrometer.core.instrument.simple.SimpleConfig)4 Duration (java.time.Duration)4 Scannable (reactor.core.Scannable)4 Metrics (reactor.util.Metrics)4 Sample (io.micrometer.core.instrument.Timer.Sample)3 Vertx (io.vertx.core.Vertx)3 File (java.io.File)3 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)3 Assertions.assertThatCode (org.assertj.core.api.Assertions.assertThatCode)3