diff --git a/core/net/src/main/java/org/onosproject/cluster/impl/ComponentsMonitor.java b/core/net/src/main/java/org/onosproject/cluster/impl/ComponentsMonitor.java
index 3dd5dda..5fed79e 100644
--- a/core/net/src/main/java/org/onosproject/cluster/impl/ComponentsMonitor.java
+++ b/core/net/src/main/java/org/onosproject/cluster/impl/ComponentsMonitor.java
@@ -24,7 +24,6 @@
 import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesService;
-import org.onlab.util.SharedScheduledExecutors;
 import org.onosproject.cluster.ClusterAdminService;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -34,9 +33,13 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
+import static org.onlab.util.Tools.groupedThreads;
+
 /**
  * Monitors the system to make sure that all bundles and their components
  * are properly activated and keeps the cluster node service appropriately
@@ -59,20 +62,22 @@
     protected ClusterAdminService clusterAdminService;
 
     private BundleContext bundleContext;
+
+    private ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(
+            groupedThreads("components-monitor", "%d", log));
     private ScheduledFuture<?> poller;
 
     @Activate
     protected void activate(ComponentContext context) {
         bundleContext = context.getBundleContext();
-        poller = SharedScheduledExecutors.getSingleThreadExecutor()
-                .scheduleAtFixedRate(this::checkStartedState, PERIOD,
-                                     PERIOD, TimeUnit.MILLISECONDS);
+        poller = executor.scheduleAtFixedRate(this::checkStartedState, PERIOD, PERIOD, TimeUnit.MILLISECONDS);
         log.info("Started");
     }
 
     @Deactivate
     protected void deactivate() {
         poller.cancel(false);
+        executor.shutdownNow();
         log.info("Stopped");
     }
 
