Search in sources :

Example 6 with WebClientService

use of io.helidon.webclient.spi.WebClientService in project helidon by oracle.

the class MetricsTest method testCounter.

@Test
public void testCounter() {
    WebClientService serviceCounterAll = WebClientMetrics.counter().nameFormat("counter.%1$s.%2$s").build();
    WebClientService serviceCounterGet = WebClientMetrics.counter().methods(Http.Method.GET).nameFormat("counter.get.%1$s.%2$s").build();
    WebClientService serviceCounterError = WebClientMetrics.counter().nameFormat("counter.error.%1$s.%2$s").success(false).build();
    WebClientService serviceCounterSuccess = WebClientMetrics.counter().nameFormat("counter.success.%1$s.%2$s").errors(false).build();
    WebClient webClient = createNewClient(serviceCounterAll, serviceCounterGet, serviceCounterError, serviceCounterSuccess);
    Counter counterAll = FACTORY.counter("counter.GET.localhost");
    Counter counterGet = FACTORY.counter("counter.get.GET.localhost");
    Counter counterError = FACTORY.counter("counter.error.GET.localhost");
    Counter counterSuccess = FACTORY.counter("counter.success.GET.localhost");
    assertThat(counterAll.getCount(), is(0L));
    assertThat(counterGet.getCount(), is(0L));
    assertThat(counterError.getCount(), is(0L));
    assertThat(counterSuccess.getCount(), is(0L));
    try {
        webClient.get().request(String.class).toCompletableFuture().get();
        assertThat(counterAll.getCount(), is(1L));
        assertThat(counterGet.getCount(), is(1L));
        assertThat(counterError.getCount(), is(0L));
        assertThat(counterSuccess.getCount(), is(1L));
        webClient.get().path("/error").request().thenCompose(WebClientResponse::close).toCompletableFuture().get();
        assertThat(counterAll.getCount(), is(2L));
        assertThat(counterGet.getCount(), is(2L));
        assertThat(counterError.getCount(), is(1L));
        assertThat(counterSuccess.getCount(), is(1L));
    } catch (Exception e) {
        fail(e);
    }
}
Also used : WebClientResponse(io.helidon.webclient.WebClientResponse) Counter(org.eclipse.microprofile.metrics.Counter) WebClientService(io.helidon.webclient.spi.WebClientService) WebClient(io.helidon.webclient.WebClient) Test(org.junit.jupiter.api.Test)

Example 7 with WebClientService

use of io.helidon.webclient.spi.WebClientService in project helidon by oracle.

the class MetricsTest method testMeter.

@Test
public void testMeter() {
    WebClientService serviceMeterAll = WebClientMetrics.meter().nameFormat("meter.%1$s.%2$s").build();
    WebClientService serviceMeterGet = WebClientMetrics.meter().methods(Http.Method.GET).nameFormat("meter.get.%1$s.%2$s").build();
    WebClientService serviceMeterError = WebClientMetrics.meter().nameFormat("meter.error.%1$s.%2$s").success(false).build();
    WebClientService serviceMeterSuccess = WebClientMetrics.meter().nameFormat("meter.success.%1$s.%2$s").errors(false).build();
    WebClient webClient = createNewClient(serviceMeterAll, serviceMeterGet, serviceMeterError, serviceMeterSuccess);
    Meter meterAll = FACTORY.meter("meter.GET.localhost");
    Meter meterGet = FACTORY.meter("meter.get.GET.localhost");
    Meter meterError = FACTORY.meter("meter.error.GET.localhost");
    Meter meterSuccess = FACTORY.meter("meter.success.GET.localhost");
    assertThat(meterAll.getCount(), is(0L));
    assertThat(meterGet.getCount(), is(0L));
    assertThat(meterError.getCount(), is(0L));
    assertThat(meterSuccess.getCount(), is(0L));
    try {
        webClient.get().request(String.class).toCompletableFuture().get();
        assertThat(meterAll.getCount(), is(1L));
        assertThat(meterGet.getCount(), is(1L));
        assertThat(meterError.getCount(), is(0L));
        assertThat(meterSuccess.getCount(), is(1L));
        webClient.get().path("/error").request().thenCompose(WebClientResponse::close).toCompletableFuture().get();
        assertThat(meterAll.getCount(), is(2L));
        assertThat(meterGet.getCount(), is(2L));
        assertThat(meterError.getCount(), is(1L));
        assertThat(meterSuccess.getCount(), is(1L));
    } catch (Exception e) {
        fail(e);
    }
}
Also used : WebClientResponse(io.helidon.webclient.WebClientResponse) Meter(org.eclipse.microprofile.metrics.Meter) WebClientService(io.helidon.webclient.spi.WebClientService) WebClient(io.helidon.webclient.WebClient) Test(org.junit.jupiter.api.Test)

Example 8 with WebClientService

use of io.helidon.webclient.spi.WebClientService in project helidon by oracle.

the class MetricsTest method testGaugeInProgress.

@Test
public void testGaugeInProgress() throws Exception {
    ConcurrentGauge progressAll = FACTORY.concurrentGauge("gauge.GET.localhost");
    ConcurrentGauge progressPut = FACTORY.concurrentGauge("gauge.put.PUT.localhost");
    ConcurrentGauge progressGet = FACTORY.concurrentGauge("gauge.get.GET.localhost");
    WebClientService inProgressAll = WebClientMetrics.gaugeInProgress().nameFormat("gauge.%1$s.%2$s").build();
    WebClientService inProgressPut = WebClientMetrics.gaugeInProgress().methods(Http.Method.PUT).nameFormat("gauge.put.%1$s.%2$s").build();
    WebClientService inProgressGet = WebClientMetrics.gaugeInProgress().methods(Http.Method.GET).nameFormat("gauge.get.%1$s.%2$s").build();
    WebClientService clientService = request -> {
        request.whenSent().thenAccept(clientServiceRequest -> {
            assertThat(progressAll.getCount(), is(1L));
            assertThat(progressGet.getCount(), is(1L));
            assertThat(progressPut.getCount(), is(0L));
        });
        return Single.just(request);
    };
    WebClient webClient = createNewClient(inProgressAll, inProgressPut, inProgressGet, clientService);
    assertThat(progressAll.getCount(), is(0L));
    assertThat(progressGet.getCount(), is(0L));
    assertThat(progressPut.getCount(), is(0L));
    webClient.get().request().thenCompose(WebClientResponse::close).toCompletableFuture().get();
    assertThat(progressAll.getCount(), is(0L));
    assertThat(progressGet.getCount(), is(0L));
    assertThat(progressPut.getCount(), is(0L));
}
Also used : Assertions.fail(org.junit.jupiter.api.Assertions.fail) WebClient(io.helidon.webclient.WebClient) WebClientService(io.helidon.webclient.spi.WebClientService) WebClientResponse(io.helidon.webclient.WebClientResponse) Meter(org.eclipse.microprofile.metrics.Meter) Test(org.junit.jupiter.api.Test) ConcurrentGauge(org.eclipse.microprofile.metrics.ConcurrentGauge) Counter(org.eclipse.microprofile.metrics.Counter) Single(io.helidon.common.reactive.Single) Matchers.is(org.hamcrest.Matchers.is) MetricRegistry(org.eclipse.microprofile.metrics.MetricRegistry) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Http(io.helidon.common.http.Http) RegistryFactory(io.helidon.metrics.RegistryFactory) WebClientMetrics(io.helidon.webclient.metrics.WebClientMetrics) WebClientResponse(io.helidon.webclient.WebClientResponse) ConcurrentGauge(org.eclipse.microprofile.metrics.ConcurrentGauge) WebClientService(io.helidon.webclient.spi.WebClientService) WebClient(io.helidon.webclient.WebClient) Test(org.junit.jupiter.api.Test)

Aggregations

WebClientService (io.helidon.webclient.spi.WebClientService)8 WebClient (io.helidon.webclient.WebClient)6 WebClientResponse (io.helidon.webclient.WebClientResponse)4 Counter (org.eclipse.microprofile.metrics.Counter)4 Test (org.junit.jupiter.api.Test)4 Http (io.helidon.common.http.Http)3 Single (io.helidon.common.reactive.Single)3 DataChunk (io.helidon.common.http.DataChunk)2 Channel (io.netty.channel.Channel)2 HttpHeaderValues (io.netty.handler.codec.http.HttpHeaderValues)2 HttpHeaders (io.netty.handler.codec.http.HttpHeaders)2 AttributeKey (io.netty.util.AttributeKey)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 CompletableFuture (java.util.concurrent.CompletableFuture)2 CompletionStage (java.util.concurrent.CompletionStage)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 Level (java.util.logging.Level)2 Logger (java.util.logging.Logger)2