@Override
    public ExecutorService newCachedThreadPool(ThreadFactory threadFactory) {
        ExecutorService executorService = threadPoolFactory.newCachedThreadPool(threadFactory);
        return ExecutorServiceMetrics.monitor(meterRegistry, executorService, name(prefix));
    }
@Test
    public void testNewCachedThreadPool() {
        final ExecutorService executorService = instrumentedThreadPoolFactory.newCachedThreadPool(threadFactory);
        assertThat(executorService, is(notNullValue()));
        assertThat(executorService, is(instanceOf(TimedExecutorService.class)));

        Tags tags = Tags.of("name", "instrumented-delegate-1");
        inOrder.verify(registry, times(1)).timer("executor", tags);
    }