Search in sources :

Example 1 with MetricDto

use of ee.ria.xroad.monitor.common.dto.MetricDto in project X-Road by nordic-institute.

the class MetricsProviderActorTest method testLimitedSystemMetricsRequest.

@Test
public void testLimitedSystemMetricsRequest() throws Exception {
    final Props props = Props.create(MetricsProviderActor.class);
    final TestActorRef<MetricsProviderActor> ref = TestActorRef.create(actorSystem, props, "testActorRef");
    Future<Object> future = Patterns.ask(ref, new SystemMetricsRequest(null, false), Timeout.apply(1, TimeUnit.MINUTES));
    Object result = Await.result(future, Duration.apply(1, TimeUnit.MINUTES));
    assertTrue(future.isCompleted());
    assertTrue(result instanceof SystemMetricsResponse);
    SystemMetricsResponse response = (SystemMetricsResponse) result;
    MetricSetDto metricSetDto = response.getMetrics();
    Set<MetricDto> dtoSet = metricSetDto.getMetrics();
    log.info("metricSetDto: " + metricSetDto);
    for (MetricDto metricDto : dtoSet) {
        // Order of entries is undefined -> Must handle by name
        switch(metricDto.getName()) {
            case HISTOGRAM_NAME:
                Assert.fail("Should not have histrogram.");
                break;
            case GAUGE_NAME:
                Assert.fail("Should not have histrogram gauge.");
                break;
            default:
                Assert.fail("Unknown metric found in response.");
                break;
        }
    }
}
Also used : SystemMetricsResponse(ee.ria.xroad.monitor.common.SystemMetricsResponse) MetricDto(ee.ria.xroad.monitor.common.dto.MetricDto) SystemMetricsRequest(ee.ria.xroad.monitor.common.SystemMetricsRequest) MetricSetDto(ee.ria.xroad.monitor.common.dto.MetricSetDto) Props(akka.actor.Props) Test(org.junit.Test)

Example 2 with MetricDto

use of ee.ria.xroad.monitor.common.dto.MetricDto in project X-Road by nordic-institute.

the class MetricTypes method of.

/**
 * MetricSetType factory
 */
public static MetricSetType of(MetricSetDto metrics) {
    final MetricSetType metricSet = new MetricSetType();
    metricSet.setName(metrics.getName());
    for (MetricDto metricDto : metrics.getMetrics()) {
        if (metricDto instanceof MetricSetDto) {
            metricSet.getMetrics().add(of((MetricSetDto) metricDto));
        } else if (metricDto instanceof HistogramDto) {
            metricSet.getMetrics().add(toMetricType((HistogramDto) metricDto));
        } else if (metricDto instanceof SimpleMetricDto) {
            metricSet.getMetrics().add(toMetricType((SimpleMetricDto<?>) metricDto));
        }
    }
    return metricSet;
}
Also used : HistogramDto(ee.ria.xroad.monitor.common.dto.HistogramDto) MetricDto(ee.ria.xroad.monitor.common.dto.MetricDto) SimpleMetricDto(ee.ria.xroad.monitor.common.dto.SimpleMetricDto) SimpleMetricDto(ee.ria.xroad.monitor.common.dto.SimpleMetricDto) MetricSetDto(ee.ria.xroad.monitor.common.dto.MetricSetDto) MetricSetType(ee.ria.xroad.proxymonitor.message.MetricSetType)

Example 3 with MetricDto

use of ee.ria.xroad.monitor.common.dto.MetricDto in project X-Road by nordic-institute.

the class MetricsProviderActorTest method testAllSystemMetricsRequest.

@Test
public void testAllSystemMetricsRequest() throws Exception {
    final Props props = Props.create(MetricsProviderActor.class);
    final TestActorRef<MetricsProviderActor> ref = TestActorRef.create(actorSystem, props, "testActorRef");
    Future<Object> future = Patterns.ask(ref, new SystemMetricsRequest(null, true), Timeout.apply(1, TimeUnit.MINUTES));
    Object result = Await.result(future, Duration.apply(1, TimeUnit.MINUTES));
    assertTrue(future.isCompleted());
    assertTrue(result instanceof SystemMetricsResponse);
    SystemMetricsResponse response = (SystemMetricsResponse) result;
    MetricSetDto metricSetDto = response.getMetrics();
    Set<MetricDto> dtoSet = metricSetDto.getMetrics();
    log.info("metricSetDto: " + metricSetDto);
    assertEquals(2, dtoSet.stream().count());
    for (MetricDto metricDto : dtoSet) {
        // Order of entries is undefined -> Must handle by name
        switch(metricDto.getName()) {
            case HISTOGRAM_NAME:
                log.info("metricDto: " + metricDto);
                assertEquals(HISTOGRAM_NAME, metricDto.getName());
                assertTrue(metricDto instanceof HistogramDto);
                HistogramDto h = (HistogramDto) metricDto;
                assertEquals(100L, (long) h.getMax());
                assertEquals(10L, (long) h.getMin());
                assertEquals(55L, (long) h.getMean());
                break;
            case GAUGE_NAME:
                log.info("metricDto: " + metricDto);
                assertEquals(GAUGE_NAME, metricDto.getName());
                break;
            default:
                Assert.fail("Unknown metric found in response.");
        }
    }
}
Also used : HistogramDto(ee.ria.xroad.monitor.common.dto.HistogramDto) SystemMetricsResponse(ee.ria.xroad.monitor.common.SystemMetricsResponse) MetricDto(ee.ria.xroad.monitor.common.dto.MetricDto) SystemMetricsRequest(ee.ria.xroad.monitor.common.SystemMetricsRequest) MetricSetDto(ee.ria.xroad.monitor.common.dto.MetricSetDto) Props(akka.actor.Props) Test(org.junit.Test)

Example 4 with MetricDto

use of ee.ria.xroad.monitor.common.dto.MetricDto in project X-Road by nordic-institute.

the class MetricsProviderActorTest method testParametrizedSystemMetricsRequest.

@Test
public void testParametrizedSystemMetricsRequest() throws Exception {
    final Props props = Props.create(MetricsProviderActor.class);
    final TestActorRef<MetricsProviderActor> ref = TestActorRef.create(actorSystem, props, "testActorRef");
    Future<Object> future = Patterns.ask(ref, new SystemMetricsRequest(Arrays.asList(HISTOGRAM_NAME), true), Timeout.apply(1, TimeUnit.MINUTES));
    Object result = Await.result(future, Duration.apply(1, TimeUnit.MINUTES));
    assertTrue(future.isCompleted());
    assertTrue(result instanceof SystemMetricsResponse);
    SystemMetricsResponse response = (SystemMetricsResponse) result;
    MetricSetDto metricSetDto = response.getMetrics();
    Set<MetricDto> dtoSet = metricSetDto.getMetrics();
    log.info("metricSetDto: " + metricSetDto);
    assertEquals(1, dtoSet.stream().count());
    // Note: findFirst() works only because of single result
    MetricDto metricDto = dtoSet.stream().findFirst().get();
    assertEquals(HISTOGRAM_NAME, metricDto.getName());
    assertTrue(metricDto instanceof HistogramDto);
    HistogramDto h = (HistogramDto) metricDto;
    assertEquals(100L, (long) h.getMax());
    assertEquals(10L, (long) h.getMin());
    assertEquals(55L, (long) h.getMean());
}
Also used : HistogramDto(ee.ria.xroad.monitor.common.dto.HistogramDto) SystemMetricsResponse(ee.ria.xroad.monitor.common.SystemMetricsResponse) MetricDto(ee.ria.xroad.monitor.common.dto.MetricDto) SystemMetricsRequest(ee.ria.xroad.monitor.common.SystemMetricsRequest) MetricSetDto(ee.ria.xroad.monitor.common.dto.MetricSetDto) Props(akka.actor.Props) Test(org.junit.Test)

Aggregations

MetricDto (ee.ria.xroad.monitor.common.dto.MetricDto)4 MetricSetDto (ee.ria.xroad.monitor.common.dto.MetricSetDto)4 Props (akka.actor.Props)3 SystemMetricsRequest (ee.ria.xroad.monitor.common.SystemMetricsRequest)3 SystemMetricsResponse (ee.ria.xroad.monitor.common.SystemMetricsResponse)3 HistogramDto (ee.ria.xroad.monitor.common.dto.HistogramDto)3 Test (org.junit.Test)3 SimpleMetricDto (ee.ria.xroad.monitor.common.dto.SimpleMetricDto)1 MetricSetType (ee.ria.xroad.proxymonitor.message.MetricSetType)1