aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-04-12 00:15:37 +0300
committerMohamedBassem <me@mbassem.com>2024-04-12 00:15:37 +0300
commitcf0df0e6d84a76649d8cbf8adcbf83efb6e883ab (patch)
tree1c492f77ae90de7ec96e32054cc229160331e31a /packages
parent95cf8f47300d6eb6efe36d44bcab0f44a8e27585 (diff)
downloadkarakeep-cf0df0e6d84a76649d8cbf8adcbf83efb6e883ab.tar.zst
fix: Differentiate between pending in db and in redis in admin job stats
Diffstat (limited to 'packages')
-rw-r--r--packages/trpc/routers/admin.ts70
1 files changed, 52 insertions, 18 deletions
diff --git a/packages/trpc/routers/admin.ts b/packages/trpc/routers/admin.ts
index c88a9b00..8792f7ed 100644
--- a/packages/trpc/routers/admin.ts
+++ b/packages/trpc/routers/admin.ts
@@ -16,27 +16,44 @@ export const adminAppRouter = router({
z.object({
numUsers: z.number(),
numBookmarks: z.number(),
- pendingCrawls: z.number(),
- failedCrawls: z.number(),
- pendingIndexing: z.number(),
- failedIndexing: z.number(),
- pendingOpenai: z.number(),
- failedOpenai: z.number(),
+ crawlStats: z.object({
+ queuedInRedis: z.number(),
+ pending: z.number(),
+ failed: z.number(),
+ }),
+ inferenceStats: z.object({
+ queuedInRedis: z.number(),
+ pending: z.number(),
+ failed: z.number(),
+ }),
+ indexingStats: z.object({
+ queuedInRedis: z.number(),
+ }),
}),
)
.query(async ({ ctx }) => {
const [
[{ value: numUsers }],
[{ value: numBookmarks }],
+
+ // Crawls
+ pendingCrawlsInRedis,
[{ value: pendingCrawls }],
[{ value: failedCrawls }],
- pendingIndexing,
- failedIndexing,
- pendingOpenai,
- failedOpenai,
+
+ // Indexing
+ pendingIndexingInRedis,
+
+ // Inference
+ pendingInferenceInRedis,
+ [{ value: pendingInference }],
+ [{ value: failedInference }],
] = await Promise.all([
ctx.db.select({ value: count() }).from(users),
ctx.db.select({ value: count() }).from(bookmarks),
+
+ // Crawls
+ LinkCrawlerQueue.getWaitingCount(),
ctx.db
.select({ value: count() })
.from(bookmarkLinks)
@@ -45,21 +62,38 @@ export const adminAppRouter = router({
.select({ value: count() })
.from(bookmarkLinks)
.where(eq(bookmarkLinks.crawlStatus, "failure")),
+
+ // Indexing
SearchIndexingQueue.getWaitingCount(),
- SearchIndexingQueue.getFailedCount(),
+
+ // Inference
OpenAIQueue.getWaitingCount(),
- OpenAIQueue.getFailedCount(),
+ ctx.db
+ .select({ value: count() })
+ .from(bookmarks)
+ .where(eq(bookmarks.taggingStatus, "pending")),
+ ctx.db
+ .select({ value: count() })
+ .from(bookmarks)
+ .where(eq(bookmarks.taggingStatus, "failure")),
]);
return {
numUsers,
numBookmarks,
- pendingCrawls,
- failedCrawls,
- pendingIndexing,
- failedIndexing,
- pendingOpenai,
- failedOpenai,
+ crawlStats: {
+ queuedInRedis: pendingCrawlsInRedis,
+ pending: pendingCrawls,
+ failed: failedCrawls,
+ },
+ inferenceStats: {
+ queuedInRedis: pendingInferenceInRedis,
+ pending: pendingInference,
+ failed: failedInference,
+ },
+ indexingStats: {
+ queuedInRedis: pendingIndexingInRedis,
+ },
};
}),
recrawlLinks: adminProcedure