Search in sources :

Example 1 with InstrumentedExecutorService

use of io.dropwizard.metrics.InstrumentedExecutorService in project light-4j by networknt.

the class InstrumentedExecutorServiceTest method reportsTasksInformation.

@Test
public void reportsTasksInformation() throws Exception {
    this.executor = Executors.newCachedThreadPool();
    final InstrumentedExecutorService instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, "xs");
    final Meter submitted = registry.meter("xs.submitted");
    final Counter running = registry.counter("xs.running");
    final Meter completed = registry.meter("xs.completed");
    final Timer duration = registry.timer("xs.duration");
    final Meter rejected = registry.meter("xs.rejected");
    assertThat(submitted.getCount()).isEqualTo(0);
    assertThat(running.getCount()).isEqualTo(0);
    assertThat(completed.getCount()).isEqualTo(0);
    assertThat(duration.getCount()).isEqualTo(0);
    assertThat(rejected.getCount()).isEqualTo(0);
    Future<?> theFuture = instrumentedExecutorService.submit(() -> {
        assertThat(submitted.getCount()).isEqualTo(1);
        assertThat(running.getCount()).isEqualTo(1);
        assertThat(completed.getCount()).isEqualTo(0);
        assertThat(duration.getCount()).isEqualTo(0);
        assertThat(rejected.getCount()).isEqualTo(0);
    });
    theFuture.get();
    assertThat(submitted.getCount()).isEqualTo(1);
    assertThat(running.getCount()).isEqualTo(0);
    assertThat(completed.getCount()).isEqualTo(1);
    assertThat(duration.getCount()).isEqualTo(1);
    assertThat(duration.getSnapshot().size()).isEqualTo(1);
    assertThat(rejected.getCount()).isEqualTo(0);
}
Also used : InstrumentedExecutorService(io.dropwizard.metrics.InstrumentedExecutorService) Counter(io.dropwizard.metrics.Counter) Timer(io.dropwizard.metrics.Timer) Meter(io.dropwizard.metrics.Meter) Test(org.junit.Test)

Example 2 with InstrumentedExecutorService

use of io.dropwizard.metrics.InstrumentedExecutorService in project light-4j by networknt.

the class InstrumentedExecutorServiceTest method reportsRejected.

@Test
public void reportsRejected() throws Exception {
    final BlockingQueue<Runnable> queueCapacityOne = new LinkedBlockingQueue<>(1);
    this.executor = new ThreadPoolExecutor(1, 1, 0, TimeUnit.MILLISECONDS, queueCapacityOne);
    final InstrumentedExecutorService instrumented = new InstrumentedExecutorService(executor, registry, "r");
    final CountDownLatch finish = new CountDownLatch(1);
    final Meter submitted = registry.meter("r.submitted");
    final Counter running = registry.counter("r.running");
    final Meter completed = registry.meter("r.completed");
    final Timer duration = registry.timer("r.duration");
    final Meter rejected = registry.meter("r.rejected");
    assertThat(submitted.getCount()).isEqualTo(0);
    assertThat(running.getCount()).isEqualTo(0);
    assertThat(completed.getCount()).isEqualTo(0);
    assertThat(duration.getCount()).isEqualTo(0);
    assertThat(rejected.getCount()).isEqualTo(0);
    final List<Future<Object>> futures = new ArrayList<>();
    // Start two callables - one to run on thread and one to be added to queue
    for (int i = 0; i < 2; i++) {
        futures.add(instrumented.submit(() -> {
            finish.await();
            return null;
        }));
    }
    try {
        // Attempt to submit third callable - should fail
        instrumented.submit(() -> {
            throw new IllegalStateException("Shouldn't run this task");
        });
        failBecauseExceptionWasNotThrown(RejectedExecutionException.class);
    } catch (RejectedExecutionException e) {
    // Expected
    } finally {
        finish.countDown();
        for (Future future : futures) {
            future.get();
        }
    }
    assertThat(submitted.getCount()).isEqualTo(3);
    assertThat(running.getCount()).isEqualTo(0);
    assertThat(completed.getCount()).isEqualTo(2);
    assertThat(duration.getCount()).isEqualTo(2);
    assertThat(rejected.getCount()).isEqualTo(1);
}
Also used : InstrumentedExecutorService(io.dropwizard.metrics.InstrumentedExecutorService) Meter(io.dropwizard.metrics.Meter) ArrayList(java.util.ArrayList) Counter(io.dropwizard.metrics.Counter) Timer(io.dropwizard.metrics.Timer) Test(org.junit.Test)

Aggregations

Counter (io.dropwizard.metrics.Counter)2 InstrumentedExecutorService (io.dropwizard.metrics.InstrumentedExecutorService)2 Meter (io.dropwizard.metrics.Meter)2 Timer (io.dropwizard.metrics.Timer)2 Test (org.junit.Test)2 ArrayList (java.util.ArrayList)1