Search in sources :

Example 1 with MetricEventPublisher

use of io.lettuce.core.event.metrics.MetricEventPublisher in project lettuce-core by lettuce-io.

the class ClientMetricsIntegrationTests method testMetricsEvent.

@Test
@Inject
void testMetricsEvent(RedisClient client, StatefulRedisConnection<String, String> connection) {
    Collection<CommandLatencyEvent> events = new LinkedBlockingQueue<>();
    EventBus eventBus = client.getResources().eventBus();
    MetricEventPublisher publisher = (MetricEventPublisher) ReflectionTestUtils.getField(client.getResources(), "metricEventPublisher");
    publisher.emitMetricsEvent();
    Disposable disposable = eventBus.get().filter(redisEvent -> redisEvent instanceof CommandLatencyEvent).cast(CommandLatencyEvent.class).doOnNext(events::add).subscribe();
    generateTestData(connection.sync());
    publisher.emitMetricsEvent();
    Wait.untilTrue(() -> !events.isEmpty()).waitOrTimeout();
    assertThat(events).isNotEmpty();
    disposable.dispose();
}
Also used : Disposable(reactor.core.Disposable) Disposable(reactor.core.Disposable) CommandLatencyEvent(io.lettuce.core.event.metrics.CommandLatencyEvent) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Collection(java.util.Collection) LettuceExtension(io.lettuce.test.LettuceExtension) RedisCommands(io.lettuce.core.api.sync.RedisCommands) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) Inject(javax.inject.Inject) Test(org.junit.jupiter.api.Test) EventBus(io.lettuce.core.event.EventBus) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) StatefulRedisConnection(io.lettuce.core.api.StatefulRedisConnection) MetricEventPublisher(io.lettuce.core.event.metrics.MetricEventPublisher) Wait(io.lettuce.test.Wait) ReflectionTestUtils(io.lettuce.test.ReflectionTestUtils) EventBus(io.lettuce.core.event.EventBus) MetricEventPublisher(io.lettuce.core.event.metrics.MetricEventPublisher) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) CommandLatencyEvent(io.lettuce.core.event.metrics.CommandLatencyEvent) Inject(javax.inject.Inject) Test(org.junit.jupiter.api.Test)

Aggregations

StatefulRedisConnection (io.lettuce.core.api.StatefulRedisConnection)1 RedisCommands (io.lettuce.core.api.sync.RedisCommands)1 EventBus (io.lettuce.core.event.EventBus)1 CommandLatencyEvent (io.lettuce.core.event.metrics.CommandLatencyEvent)1 MetricEventPublisher (io.lettuce.core.event.metrics.MetricEventPublisher)1 LettuceExtension (io.lettuce.test.LettuceExtension)1 ReflectionTestUtils (io.lettuce.test.ReflectionTestUtils)1 Wait (io.lettuce.test.Wait)1 Collection (java.util.Collection)1 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)1 Inject (javax.inject.Inject)1 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)1 Test (org.junit.jupiter.api.Test)1 ExtendWith (org.junit.jupiter.api.extension.ExtendWith)1 Disposable (reactor.core.Disposable)1