Search in sources :

Example 6 with CentralisedMetrics

use of com.hotels.styx.metrics.CentralisedMetrics in project styx by ExpediaGroup.

the class HttpPipelineHandlerTest method updatesRequestsOngoingCountOnChannelReadEvent.

@Test
public void updatesRequestsOngoingCountOnChannelReadEvent() throws Exception {
    MeterRegistry registry = new MicrometerRegistry(new SimpleMeterRegistry());
    HttpPipelineHandler pipelineHandler = handlerWithMocks(doNotRespondHandler).responseEnhancer(DO_NOT_MODIFY_RESPONSE).progressListener(new RequestStatsCollector(new CentralisedMetrics(registry))).build();
    ChannelHandlerContext ctx = mockCtx();
    pipelineHandler.channelActive(ctx);
    pipelineHandler.channelRead0(ctx, get("/foo").build());
    assertThat(requestOutstandingValue(registry), is(1.0));
}
Also used : RequestStatsCollector(com.hotels.styx.server.RequestStatsCollector) MicrometerRegistry(com.hotels.styx.api.MicrometerRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) ChannelHandlerContext(io.netty.channel.ChannelHandlerContext) CentralisedMetrics(com.hotels.styx.metrics.CentralisedMetrics) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(com.hotels.styx.api.MeterRegistry) Test(org.junit.jupiter.api.Test)

Example 7 with CentralisedMetrics

use of com.hotels.styx.metrics.CentralisedMetrics in project styx by ExpediaGroup.

the class OriginsInventoryTest method shutsConnectionPoolForRemovedOrigin.

@Test
public void shutsConnectionPoolForRemovedOrigin() {
    Origin originV1 = newOriginBuilder("acme01.com", 80).applicationId(GENERIC_APP).id("acme-01").build();
    Origin originV2 = newOriginBuilder("acme02.com", 80).applicationId(GENERIC_APP).id("acme-02").build();
    ConnectionPool.Factory connectionFactory = mock(ConnectionPool.Factory.class);
    ConnectionPool pool1 = mock(ConnectionPool.class);
    when(pool1.getOrigin()).thenReturn(originV1);
    ConnectionPool pool2 = mock(ConnectionPool.class);
    when(pool2.getOrigin()).thenReturn(originV2);
    when(connectionFactory.create(eq(originV1))).thenReturn(pool1);
    when(connectionFactory.create(eq(originV2))).thenReturn(pool2);
    inventory = new OriginsInventory(eventBus, GENERIC_APP, monitor, connectionFactory, hostClientFactory, new CentralisedMetrics(meterRegistry));
    inventory.setOrigins(originV1, originV2);
    inventory.setOrigins(originV2);
    verify(pool1).close();
}
Also used : DisableOrigin(com.hotels.styx.client.origincommands.DisableOrigin) EnableOrigin(com.hotels.styx.client.origincommands.EnableOrigin) Origin(com.hotels.styx.api.extension.Origin) ConnectionPool(com.hotels.styx.client.connectionpool.ConnectionPool) CentralisedMetrics(com.hotels.styx.metrics.CentralisedMetrics) Test(org.junit.jupiter.api.Test)

Example 8 with CentralisedMetrics

use of com.hotels.styx.metrics.CentralisedMetrics in project styx by ExpediaGroup.

the class UrlRequestHealthCheckTest method setUp.

@BeforeEach
public void setUp() {
    metrics = new CentralisedMetrics(new MicrometerRegistry(new SimpleMeterRegistry()));
    originState = null;
    requestedUrl = null;
}
Also used : MicrometerRegistry(com.hotels.styx.api.MicrometerRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) CentralisedMetrics(com.hotels.styx.metrics.CentralisedMetrics) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 9 with CentralisedMetrics

use of com.hotels.styx.metrics.CentralisedMetrics in project styx by ExpediaGroup.

the class HttpErrorStatusMetricsTest method setUp.

@BeforeEach
public void setUp() {
    registry = new SimpleMeterRegistry();
    metrics = new CentralisedMetrics(new MicrometerRegistry(registry));
    errorListener = new HttpErrorStatusMetrics(metrics);
}
Also used : MicrometerRegistry(com.hotels.styx.api.MicrometerRegistry) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) CentralisedMetrics(com.hotels.styx.metrics.CentralisedMetrics) BeforeEach(org.junit.jupiter.api.BeforeEach)

Example 10 with CentralisedMetrics

use of com.hotels.styx.metrics.CentralisedMetrics in project styx by ExpediaGroup.

the class HttpPipelineHandlerTest method decrementsRequestsOngoingOnExceptionCaught.

@Test
public void decrementsRequestsOngoingOnExceptionCaught() throws Exception {
    MeterRegistry registry = new MicrometerRegistry(new SimpleMeterRegistry());
    HttpPipelineHandler adapter = handlerWithMocks(doNotRespondHandler).progressListener(new RequestStatsCollector(new CentralisedMetrics(registry))).build();
    ChannelHandlerContext ctx = mockCtx();
    adapter.channelActive(ctx);
    LiveHttpRequest request = get("/foo").build();
    adapter.channelRead0(ctx, request);
    assertThat(requestOutstandingValue(registry), is(1.0));
    adapter.exceptionCaught(ctx, new Throwable("Exception"));
    assertThat(requestOutstandingValue(registry), is(0.0));
    adapter.channelInactive(ctx);
    assertThat(requestOutstandingValue(registry), is(0.0));
    verify(responseEnhancer).enhance(any(LiveHttpResponse.Transformer.class), eq(request));
}
Also used : RequestStatsCollector(com.hotels.styx.server.RequestStatsCollector) MicrometerRegistry(com.hotels.styx.api.MicrometerRegistry) LiveHttpRequest(com.hotels.styx.api.LiveHttpRequest) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) ChannelHandlerContext(io.netty.channel.ChannelHandlerContext) CentralisedMetrics(com.hotels.styx.metrics.CentralisedMetrics) SimpleMeterRegistry(io.micrometer.core.instrument.simple.SimpleMeterRegistry) MeterRegistry(com.hotels.styx.api.MeterRegistry) Test(org.junit.jupiter.api.Test)

Aggregations

CentralisedMetrics (com.hotels.styx.metrics.CentralisedMetrics)15 MicrometerRegistry (com.hotels.styx.api.MicrometerRegistry)12 SimpleMeterRegistry (io.micrometer.core.instrument.simple.SimpleMeterRegistry)12 Test (org.junit.jupiter.api.Test)9 MeterRegistry (com.hotels.styx.api.MeterRegistry)6 BeforeEach (org.junit.jupiter.api.BeforeEach)6 ConnectionPool (com.hotels.styx.client.connectionpool.ConnectionPool)3 RequestStatsCollector (com.hotels.styx.server.RequestStatsCollector)3 ChannelHandlerContext (io.netty.channel.ChannelHandlerContext)3 Origin (com.hotels.styx.api.extension.Origin)2 DisableOrigin (com.hotels.styx.client.origincommands.DisableOrigin)2 EnableOrigin (com.hotels.styx.client.origincommands.EnableOrigin)2 EventBus (com.google.common.eventbus.EventBus)1 Version (com.hotels.styx.Version)1 LiveHttpRequest (com.hotels.styx.api.LiveHttpRequest)1 Origin.newOriginBuilder (com.hotels.styx.api.extension.Origin.newOriginBuilder)1 OriginsSnapshot (com.hotels.styx.api.extension.OriginsSnapshot)1 Connection (com.hotels.styx.client.Connection)1 OriginHealthStatusMonitor (com.hotels.styx.client.healthcheck.OriginHealthStatusMonitor)1 LoggingTestSupport (com.hotels.styx.support.matchers.LoggingTestSupport)1