From 998385334bdfa4e2093f92fc205562662f05917d Mon Sep 17 00:00:00 2001 From: Athou Date: Sun, 3 Sep 2023 12:09:14 +0200 Subject: [PATCH] add metric for deleted entries --- commafeed-client/src/pages/admin/MetricsPage.tsx | 1 + .../backend/service/DatabaseCleaningService.java | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/commafeed-client/src/pages/admin/MetricsPage.tsx b/commafeed-client/src/pages/admin/MetricsPage.tsx index ae5a86a9..047f45a9 100644 --- a/commafeed-client/src/pages/admin/MetricsPage.tsx +++ b/commafeed-client/src/pages/admin/MetricsPage.tsx @@ -14,6 +14,7 @@ const shownMeters: { [key: string]: string } = { "com.commafeed.backend.feed.FeedRefreshUpdater.feedUpdated": "Feed update rate", "com.commafeed.backend.feed.FeedRefreshUpdater.entryCacheHit": "Entry cache hit rate", "com.commafeed.backend.feed.FeedRefreshUpdater.entryCacheMiss": "Entry cache miss rate", + "com.commafeed.backend.service.DatabaseCleaningService.entriesDeleted": "Entries deleted", } const shownGauges: { [key: string]: string } = { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/service/DatabaseCleaningService.java b/commafeed-server/src/main/java/com/commafeed/backend/service/DatabaseCleaningService.java index 9e58d4fc..8a3da161 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/service/DatabaseCleaningService.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/service/DatabaseCleaningService.java @@ -6,6 +6,8 @@ import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; +import com.codahale.metrics.Meter; +import com.codahale.metrics.MetricRegistry; import com.commafeed.CommaFeedConfiguration; import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.dao.FeedEntryContentDAO; @@ -32,16 +34,18 @@ public class DatabaseCleaningService { private final FeedEntryDAO feedEntryDAO; private final FeedEntryContentDAO feedEntryContentDAO; private final FeedEntryStatusDAO feedEntryStatusDAO; + private final Meter entriesDeletedMeter; @Inject public DatabaseCleaningService(CommaFeedConfiguration config, UnitOfWork unitOfWork, FeedDAO feedDAO, FeedEntryDAO feedEntryDAO, - FeedEntryContentDAO feedEntryContentDAO, FeedEntryStatusDAO feedEntryStatusDAO) { + FeedEntryContentDAO feedEntryContentDAO, FeedEntryStatusDAO feedEntryStatusDAO, MetricRegistry metrics) { this.unitOfWork = unitOfWork; this.feedDAO = feedDAO; this.feedEntryDAO = feedEntryDAO; this.feedEntryContentDAO = feedEntryContentDAO; this.feedEntryStatusDAO = feedEntryStatusDAO; this.batchSize = config.getApplicationSettings().getDatabaseCleanupBatchSize(); + this.entriesDeletedMeter = metrics.meter(MetricRegistry.name(getClass(), "entriesDeleted")); } public void cleanFeedsWithoutSubscriptions() { @@ -55,6 +59,7 @@ public class DatabaseCleaningService { long entriesDeleted; do { entriesDeleted = unitOfWork.call(() -> feedEntryDAO.delete(feed.getId(), batchSize)); + entriesDeletedMeter.mark(entriesDeleted); entriesTotal += entriesDeleted; log.info("removed {} entries for feeds without subscriptions", entriesTotal); } while (entriesDeleted > 0); @@ -91,6 +96,7 @@ public class DatabaseCleaningService { do { final long rem = remaining; int deleted = unitOfWork.call(() -> feedEntryDAO.deleteOldEntries(feed.getId(), Math.min(batchSize, rem))); + entriesDeletedMeter.mark(deleted); total += deleted; remaining -= deleted; log.info("removed {} entries for feeds exceeding capacity", total);