diff --git a/metrics-jetty12/src/main/java/io/dropwizard/metrics/jetty12/InstrumentedQueuedThreadPool.java b/metrics-jetty12/src/main/java/io/dropwizard/metrics/jetty12/InstrumentedQueuedThreadPool.java index e8f7438209..1cefd50fc5 100644 --- a/metrics-jetty12/src/main/java/io/dropwizard/metrics/jetty12/InstrumentedQueuedThreadPool.java +++ b/metrics-jetty12/src/main/java/io/dropwizard/metrics/jetty12/InstrumentedQueuedThreadPool.java @@ -128,15 +128,10 @@ protected void doStart() throws Exception { metricRegistry.register(prefix.resolve(NAME_UTILIZATION), new RatioGauge() { @Override protected Ratio getRatio() { - return Ratio.of(getThreads() - getIdleThreads(), getThreads()); - } - }); - metricRegistry.register(prefix.resolve(NAME_UTILIZATION_MAX), new RatioGauge() { - @Override - protected Ratio getRatio() { - return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads()); + return Ratio.of(getUtilizedThreads(), getThreads() - getLeasedThreads()); } }); + metricRegistry.registerGauge(prefix.resolve(NAME_UTILIZATION_MAX), this::getUtilizationRate); metricRegistry.registerGauge(prefix.resolve(NAME_SIZE), this::getThreads); // This assumes the QueuedThreadPool is using a BlockingArrayQueue or // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.