diff options
| author | MohamedBassem <me@mbassem.com> | 2024-04-12 00:15:37 +0300 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-04-12 00:15:37 +0300 |
| commit | cf0df0e6d84a76649d8cbf8adcbf83efb6e883ab (patch) | |
| tree | 1c492f77ae90de7ec96e32054cc229160331e31a /packages | |
| parent | 95cf8f47300d6eb6efe36d44bcab0f44a8e27585 (diff) | |
| download | karakeep-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.ts | 70 |
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 |
