Can a couple more folks please review PR #1868? My review feedback pertained only to using dependency injection instead of a singleton or static getter and Yossi has updated the code as I requested. My review doesn't really address the usefulness of the feature or the impact on features that were updated to use ThreadMonitoring.
Note that there is new User API and Configuration. It would be good for people who work with Queues, Pools, Configuration, FunctionExecutor, DistributionManager (and its Executors), Client/Server communication, WAN Gateways to review this PR since it touches all of these classes: AbstractGatewaySenderEventProcessor.java AcceptorImpl.java ClusterDistributionManager.java ConcurrentParallelGatewaySenderEventProcessor.java ConcurrentSerialGatewaySenderEventProcessor.java DistributionConfig.java DistributionConfigImpl.java DistributionManager.java ExpiryTask.java FunctionExecutionPooledExecutor.java GemFireCacheImpl.java LonerDistributionManager.java OneTaskOnlyExecutor.java ParallelAsyncEventQueueImpl.java ParallelGatewaySenderEventProcessor.java ParallelGatewaySenderHelper.java ParallelGatewaySenderImpl.java PoolImpl.java PRHARedundancyProvider.java RemoteConcurrentParallelGatewaySenderEventProcessor.java RemoteConcurrentSerialGatewaySenderEventProcessor.java RemoteParallelGatewaySenderEventProcessor.java RemoteSerialGatewaySenderEventProcessor.java ScheduledThreadPoolExecutorWithKeepAlive.java SerialAsyncEventQueueImpl.java SerialGatewaySenderEventProcessor.java SerialGatewaySenderImpl.java SerialQueuedExecutorWithDMStats.java TcpServer.java This PR also introduces new user visible API and configuration options: ConfigurationProperties.java ThreadMonitoring.java (I may have left out a couple classes) https://github.com/apache/geode/pull/1868