netty 监控线程池队列的运行情况


 /**
  * 依赖jar包    metrics-core-4.1.9.jar
  * 
 *
NettyServer.exec 对象的定义 见 https://www.cnblogs.com/xiaodu9499/p/14328906.html
 
*/




public
class MetricsUtils { /** * 监控堆外内存使用情况 * 工作线程的队列情况 */ public static void start() { // 注册 MetricRegistry metricRegistry = new MetricRegistry(); metricRegistry.register("已使用直接内存", (Gauge<Long>) () -> PlatformDependent.usedDirectMemory()); metricRegistry.register("最大直接内存", (Gauge<Long>) () -> PlatformDependent.maxDirectMemory()); for (EventExecutor eventExecutor : NettyServer.exec) { metricRegistry.register("exec=======等待队列大小"+eventExecutor.hashCode(), (Gauge<Integer>) () ->((SingleThreadEventExecutor)eventExecutor).pendingTasks()); } // 打印到控制台 ConsoleReporter consoleReporter = ConsoleReporter.forRegistry(metricRegistry).build(); // 每5秒打印一次 consoleReporter.start(5, TimeUnit.SECONDS); } }
原文地址:https://www.cnblogs.com/xiaodu9499/p/14328919.html