Skip to content

Commit 4934a4f

Browse files
committed
feat(satellite): add logger support to event handler functions
1 parent 7009ab2 commit 4934a4f

File tree

9 files changed

+44
-17
lines changed

9 files changed

+44
-17
lines changed

services/backend/src/events/satellite/index.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ addFormats(ajv);
3939
/**
4040
* Build event handler registry by loading all handler modules
4141
*/
42-
async function buildEventRegistry(): Promise<EventHandlerRegistry> {
42+
async function buildEventRegistry(logger?: FastifyBaseLogger): Promise<EventHandlerRegistry> {
4343
const registry: EventHandlerRegistry = {};
4444

4545
for (const loadHandler of handlerModules) {
@@ -48,7 +48,12 @@ async function buildEventRegistry(): Promise<EventHandlerRegistry> {
4848

4949
// Validate handler exports required fields
5050
if (!handler.EVENT_TYPE || !handler.SCHEMA || !handler.handle) {
51-
console.error('Invalid event handler - missing required exports:', handler);
51+
if (logger) {
52+
logger.error({
53+
operation: 'build_event_registry',
54+
handler: handler?.EVENT_TYPE || 'unknown'
55+
}, 'Invalid event handler - missing required exports');
56+
}
5257
continue;
5358
}
5459

@@ -58,7 +63,12 @@ async function buildEventRegistry(): Promise<EventHandlerRegistry> {
5863
handle: handler.handle
5964
};
6065
} catch (error) {
61-
console.error('Failed to load event handler:', error);
66+
if (logger) {
67+
logger.error({
68+
operation: 'build_event_registry',
69+
error: error instanceof Error ? error.message : 'Unknown error'
70+
}, 'Failed to load event handler');
71+
}
6272
}
6373
}
6474

@@ -71,9 +81,9 @@ let eventRegistry: EventHandlerRegistry | null = null;
7181
/**
7282
* Get or initialize event handler registry
7383
*/
74-
async function getEventRegistry(): Promise<EventHandlerRegistry> {
84+
async function getEventRegistry(logger?: FastifyBaseLogger): Promise<EventHandlerRegistry> {
7585
if (!eventRegistry) {
76-
eventRegistry = await buildEventRegistry();
86+
eventRegistry = await buildEventRegistry(logger);
7787
}
7888
return eventRegistry;
7989
}
@@ -88,7 +98,7 @@ async function processEvent(
8898
logger: FastifyBaseLogger
8999
): Promise<EventProcessingResult> {
90100
try {
91-
const registry = await getEventRegistry();
101+
const registry = await getEventRegistry(logger);
92102

93103
// Check if event type is registered
94104
const handler = registry[event.type];
@@ -126,7 +136,7 @@ async function processEvent(
126136
}
127137

128138
// Execute handler
129-
await handler.handle(satelliteId, event.data, db, eventTimestamp);
139+
await handler.handle(satelliteId, event.data, db, eventTimestamp, logger);
130140

131141
logger.info({
132142
satelliteId,

services/backend/src/events/satellite/mcp-client-activity.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
2+
import type { FastifyBaseLogger } from 'fastify';
23
import { mcpClientActivity, mcpClientActivityMetrics } from '../../db/schema.sqlite';
34
import { eq, and, sql } from 'drizzle-orm';
45
import { nanoid } from 'nanoid';
@@ -192,7 +193,8 @@ export async function handle(
192193
satelliteId: string,
193194
eventData: Record<string, unknown>,
194195
db: LibSQLDatabase,
195-
eventTimestamp: Date
196+
eventTimestamp: Date,
197+
logger: FastifyBaseLogger
196198
): Promise<void> {
197199
const data = eventData as unknown as McpClientActivityData;
198200
const authIdentifier = `oauth:${data.oauth_client_id}`;
@@ -217,13 +219,14 @@ export async function handle(
217219
eventTimestamp
218220
);
219221
} catch (error) {
220-
console.error('Failed to write time-series metrics (non-fatal):', {
222+
logger.error({
223+
operation: 'write_time_series_metrics',
221224
error: error instanceof Error ? error.message : 'Unknown error',
222225
satelliteId,
223226
userId: data.user_id,
224227
teamId: data.team_id,
225228
requestCount: data.request_count,
226229
toolCallCount: data.tool_call_count
227-
});
230+
}, 'Failed to write time-series metrics (non-fatal)');
228231
}
229232
}

services/backend/src/events/satellite/mcp-server-crashed.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
8+
import type { FastifyBaseLogger } from 'fastify';
89
import { satelliteProcesses } from '../../db/schema.sqlite';
910
import { eq } from 'drizzle-orm';
1011

@@ -84,7 +85,8 @@ export async function handle(
8485
satelliteId: string,
8586
eventData: Record<string, unknown>,
8687
db: LibSQLDatabase,
87-
eventTimestamp: Date
88+
eventTimestamp: Date,
89+
_logger: FastifyBaseLogger
8890
): Promise<void> {
8991
const data = eventData as unknown as ServerCrashedData;
9092

services/backend/src/events/satellite/mcp-server-dormant.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
8+
import type { FastifyBaseLogger } from 'fastify';
89
import { satelliteProcesses } from '../../db/schema.sqlite';
910
import { eq } from 'drizzle-orm';
1011

@@ -69,7 +70,8 @@ export async function handle(
6970
satelliteId: string,
7071
eventData: Record<string, unknown>,
7172
db: LibSQLDatabase,
72-
eventTimestamp: Date
73+
eventTimestamp: Date,
74+
_logger: FastifyBaseLogger
7375
): Promise<void> {
7476
const data = eventData as unknown as ServerDormantData;
7577

services/backend/src/events/satellite/mcp-server-respawned.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
8+
import type { FastifyBaseLogger } from 'fastify';
89
import { satelliteProcesses } from '../../db/schema.sqlite';
910
import { eq } from 'drizzle-orm';
1011

@@ -69,7 +70,8 @@ export async function handle(
6970
satelliteId: string,
7071
eventData: Record<string, unknown>,
7172
db: LibSQLDatabase,
72-
eventTimestamp: Date
73+
eventTimestamp: Date,
74+
_logger: FastifyBaseLogger
7375
): Promise<void> {
7476
const data = eventData as unknown as ServerRespawnedData;
7577

services/backend/src/events/satellite/mcp-server-restarted.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
8+
import type { FastifyBaseLogger } from 'fastify';
89
import { satelliteProcesses } from '../../db/schema.sqlite';
910
import { eq } from 'drizzle-orm';
1011

@@ -75,7 +76,8 @@ export async function handle(
7576
satelliteId: string,
7677
eventData: Record<string, unknown>,
7778
db: LibSQLDatabase,
78-
eventTimestamp: Date
79+
eventTimestamp: Date,
80+
_logger: FastifyBaseLogger
7981
): Promise<void> {
8082
const data = eventData as unknown as ServerRestartedData;
8183

services/backend/src/events/satellite/mcp-server-started.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
8+
import type { FastifyBaseLogger } from 'fastify';
89
import { satelliteProcesses } from '../../db/schema.sqlite';
910
import { eq } from 'drizzle-orm';
1011

@@ -75,7 +76,8 @@ export async function handle(
7576
satelliteId: string,
7677
eventData: Record<string, unknown>,
7778
db: LibSQLDatabase,
78-
eventTimestamp: Date
79+
eventTimestamp: Date,
80+
_logger: FastifyBaseLogger
7981
): Promise<void> {
8082
const data = eventData as unknown as ServerStartedData;
8183

services/backend/src/events/satellite/mcp-tool-executed.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
8+
import type { FastifyBaseLogger } from 'fastify';
89
import { satelliteUsageLogs } from '../../db/schema.sqlite';
910
import { nanoid } from 'nanoid';
1011

@@ -68,7 +69,8 @@ export async function handle(
6869
satelliteId: string,
6970
eventData: Record<string, unknown>,
7071
db: LibSQLDatabase,
71-
eventTimestamp: Date
72+
eventTimestamp: Date,
73+
_logger: FastifyBaseLogger
7274
): Promise<void> {
7375
const data = eventData as unknown as ToolExecutedData;
7476

services/backend/src/events/satellite/types.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
import type { LibSQLDatabase } from 'drizzle-orm/libsql';
6+
import type { FastifyBaseLogger } from 'fastify';
67

78
/**
89
* Base event structure that all events must conform to
@@ -54,7 +55,8 @@ export interface EventHandler {
5455
satelliteId: string,
5556
eventData: Record<string, unknown>,
5657
db: LibSQLDatabase,
57-
eventTimestamp: Date
58+
eventTimestamp: Date,
59+
logger: FastifyBaseLogger
5860
) => Promise<void>;
5961
}
6062

0 commit comments

Comments
 (0)