From ff090de82bb2cd0a08978efd836fd3910d1e214c Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Sun, 26 Apr 2026 00:42:58 +0200 Subject: [PATCH] fix: Update request logging to use request_tracking table instead of dashboard_request_log --- .../gateway/src/modules/request-logger.ts | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/packages/gateway/src/modules/request-logger.ts b/packages/gateway/src/modules/request-logger.ts index 256a7a5..c4e56e9 100644 --- a/packages/gateway/src/modules/request-logger.ts +++ b/packages/gateway/src/modules/request-logger.ts @@ -8,7 +8,7 @@ export class RequestLogger { constructor(private db: Pool) {} /** - * Log a completion request to dashboard_request_log table + * Log a completion request to request_tracking table * Also emits event for real-time SSE subscribers */ async logRequest( @@ -32,9 +32,9 @@ export class RequestLogger { // Write to database await this.db.query( ` - INSERT INTO dashboard_request_log ( + INSERT INTO request_tracking ( request_id, - caller, + caller_id, task_type, model, status, @@ -45,9 +45,8 @@ export class RequestLogger { latency_ms, fallback_used, error_message, - created_at, - created_at_epoch - ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14) + created_at + ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13) `, [ requestId, @@ -62,8 +61,7 @@ export class RequestLogger { latencyMs, fallbackUsed || false, errorMessage || null, - now, - epochSeconds + now ] ); @@ -92,7 +90,7 @@ export class RequestLogger { } /** - * Get recent requests from dashboard_request_log + * Get recent requests from request_tracking * Used by /api/dashboard/requests endpoint */ async getRecentRequests( @@ -119,7 +117,7 @@ export class RequestLogger { ` SELECT request_id, - caller, + caller_id as caller, task_type, model, status, @@ -131,8 +129,8 @@ export class RequestLogger { fallback_used, error_message, created_at - FROM dashboard_request_log - WHERE created_at > NOW() - INTERVAL $1 HOUR + FROM request_tracking + WHERE created_at > NOW() - MAKE_INTERVAL(hours => $1) ORDER BY created_at DESC LIMIT $2 `, @@ -184,18 +182,18 @@ export class RequestLogger { SUM(CASE WHEN status = 'approved' THEN 1 ELSE 0 END)::FLOAT / COUNT(*) as success_rate, AVG(confidence_score) as avg_confidence, SUM(CASE WHEN fallback_used = true THEN 1 ELSE 0 END)::FLOAT / COUNT(*) as fallback_percentage - FROM dashboard_request_log - WHERE created_at > NOW() - INTERVAL $1 MINUTE + FROM request_tracking + WHERE created_at > NOW() - MAKE_INTERVAL(mins => $1) `, [bucketMinutes] ); const topCallersResult = await this.db.query( ` - SELECT caller, COUNT(*) as count - FROM dashboard_request_log - WHERE created_at > NOW() - INTERVAL $1 MINUTE - GROUP BY caller + SELECT caller_id as caller, COUNT(*) as count + FROM request_tracking + WHERE created_at > NOW() - MAKE_INTERVAL(mins => $1) + GROUP BY caller_id ORDER BY count DESC LIMIT 5 `, @@ -205,8 +203,8 @@ export class RequestLogger { const topModelsResult = await this.db.query( ` SELECT model, COUNT(*) as count - FROM dashboard_request_log - WHERE created_at > NOW() - INTERVAL $1 MINUTE + FROM request_tracking + WHERE created_at > NOW() - MAKE_INTERVAL(mins => $1) GROUP BY model ORDER BY count DESC LIMIT 5 @@ -216,10 +214,10 @@ export class RequestLogger { const recentErrorsResult = await this.db.query( ` - SELECT request_id, caller, error_message, created_at - FROM dashboard_request_log + SELECT request_id, caller_id as caller, error_message, created_at + FROM request_tracking WHERE status IN ('rejected', 'error') - AND created_at > NOW() - INTERVAL $1 MINUTE + AND created_at > NOW() - ($1 * INTERVAL '1 minute') ORDER BY created_at DESC LIMIT 10 `,