code: public static InstrumentedExecutorService newFixedThreadPool(int nThreads, MetricRegistry registry) {
          return new InstrumentedExecutorService(Executors.newFixedThreadPool(nThreads), registry);
      }
docs: Creates an instrumented thread pool that reuses a fixed number of threads
  operating off a shared unbounded queue.  At any point, at most
  {@code nThreads} threads will be active processing tasks.
  If additional tasks are submitted when all threads are active,
  they will wait in the queue until a thread is available.
  If any thread terminates due to a failure during execution
  prior to shutdown, a new one will take its place if needed to
  execute subsequent tasks.  The threads in the pool will exist
  until it is explicitly {@link java.util.concurrent.ExecutorService#shutdown shutdown}.
  
  @param nThreads the number of threads in the pool
  @param registry the {@link MetricRegistry} that will contain the metrics.
  @return the newly created thread pool
  @throws IllegalArgumentException if {@code nThreads <= 0}
  @see Executors#newFixedThreadPool(int)