From c388e726fed516f933efc4bda77f92dc43286827 Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 5 Jul 2013 09:52:23 +0200 Subject: [PATCH] show active threads in metrics --- .../backend/feeds/FeedRefreshExecutor.java | 14 +++++++++++--- .../backend/feeds/FeedRefreshUpdater.java | 4 ++++ .../commafeed/backend/feeds/FeedRefreshWorker.java | 14 ++++++++++---- .../frontend/rest/resources/AdminREST.java | 5 +++-- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshExecutor.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshExecutor.java index 94630cfb..232aef98 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshExecutor.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshExecutor.java @@ -17,7 +17,8 @@ public class FeedRefreshExecutor { private ThreadPoolExecutor pool; private LinkedBlockingDeque queue; - public FeedRefreshExecutor(final String poolName, int threads, int queueCapacity) { + public FeedRefreshExecutor(final String poolName, int threads, + int queueCapacity) { this.poolName = poolName; pool = new ThreadPoolExecutor(threads, threads, 0, TimeUnit.MILLISECONDS, @@ -46,7 +47,8 @@ public class FeedRefreshExecutor { queue.put(r); } } catch (InterruptedException e1) { - log.error(poolName + " interrupted while waiting for queue.", e1); + log.error(poolName + + " interrupted while waiting for queue.", e1); } } }); @@ -60,6 +62,10 @@ public class FeedRefreshExecutor { return queue.size(); } + public int getActiveCount() { + return pool.getActiveCount(); + } + public static interface Task extends Runnable { boolean isUrgent(); } @@ -70,7 +76,9 @@ public class FeedRefreshExecutor { try { Thread.sleep(100); } catch (InterruptedException e) { - log.error("{} interrupted while waiting for threads to finish.", poolName); + log.error( + "{} interrupted while waiting for threads to finish.", + poolName); } } } diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java index 0794d308..ec21e7ee 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java @@ -185,4 +185,8 @@ public class FeedRefreshUpdater { return pool.getQueueSize(); } + public int getActiveCount() { + return pool.getActiveCount(); + } + } diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java index 234c3456..d67c1639 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshWorker.java @@ -53,7 +53,8 @@ public class FeedRefreshWorker { ApplicationSettings settings = applicationSettingsService.get(); int threads = settings.getBackgroundThreads(); log.info("Creating refresh worker pool with {} threads", threads); - pool = new FeedRefreshExecutor("FeedRefreshUpdater", threads, 20 * threads); + pool = new FeedRefreshExecutor("FeedRefreshUpdater", threads, + 20 * threads); } @PreDestroy @@ -64,11 +65,15 @@ public class FeedRefreshWorker { public void updateFeed(Feed feed) { pool.execute(new FeedTask(feed)); } - - public int getQueueSize(){ + + public int getQueueSize() { return pool.getQueueSize(); } + public int getActiveCount() { + return pool.getActiveCount(); + } + private class FeedTask implements Task { private Feed feed; @@ -125,7 +130,8 @@ public class FeedRefreshWorker { feedRefreshUpdater.updateFeed(feed, entries); } catch (NotModifiedException e) { - log.debug("Feed not modified : {} - {}", feed.getUrl(), e.getMessage()); + log.debug("Feed not modified : {} - {}", feed.getUrl(), + e.getMessage()); Date disabledUntil = null; if (applicationSettingsService.get().isHeavyLoad()) { diff --git a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java index d12929b7..ee1516ad 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java @@ -236,7 +236,9 @@ public class AdminREST extends AbstractResourceREST { if (backlog) { map.put("backlog", taskGiver.getUpdatableCount()); } + map.put("http_active", feedRefreshWorker.getActiveCount()); map.put("http_queue", feedRefreshWorker.getQueueSize()); + map.put("database_active", feedRefreshUpdater.getActiveCount()); map.put("database_queue", feedRefreshUpdater.getQueueSize()); map.put("cache", metricsBean.getCacheStats()); @@ -249,8 +251,7 @@ public class AdminREST extends AbstractResourceREST { Map map = Maps.newHashMap(); map.put("feeds_without_subscriptions", cleaner.cleanFeedsWithoutSubscriptions()); - map.put("entries_without_feeds", - cleaner.cleanEntriesWithoutFeeds()); + map.put("entries_without_feeds", cleaner.cleanEntriesWithoutFeeds()); return Response.ok(map).build(); }