From 049e9e52633fe5e240dbaef6b177eebfe38e1840 Mon Sep 17 00:00:00 2001 From: Ben Allfree Date: Tue, 22 Jul 2025 02:33:08 +0000 Subject: [PATCH] refactor(pockethost): improve breadcrumb handling in logging services for better clarity --- .../pockethost/src/services/InstanceLoggerService/index.ts | 4 ++-- packages/pockethost/src/services/InstanceService/index.ts | 6 ++++-- packages/pockethost/src/services/PocketBaseService/index.ts | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/pockethost/src/services/InstanceLoggerService/index.ts b/packages/pockethost/src/services/InstanceLoggerService/index.ts index 0c6458d1..3abb9739 100644 --- a/packages/pockethost/src/services/InstanceLoggerService/index.ts +++ b/packages/pockethost/src/services/InstanceLoggerService/index.ts @@ -75,7 +75,7 @@ const MultiChannelLimiter = () => { const limiter = MultiChannelLimiter() export function InstanceLogWriter(instanceId: string, volume: string, target: string, logger: Logger) { - const lgr = logger.create(`InstanceLogWriter`).breadcrumb(`${instanceId}-${target}`) + const lgr = logger.create(`InstanceLogWriter`).breadcrumb(instanceId).breadcrumb(target) const { dbg, info, error, warn } = lgr ensureInstanceDirectoryStructure(instanceId, volume, lgr) @@ -125,7 +125,7 @@ export function InstanceLogWriter(instanceId: string, volume: string, target: st } export function InstanceLogReader(instanceId: string, volume: string, target: string, logger: Logger) { - const { dbg, info, error, warn } = logger.create(`InstanceLogReader`).breadcrumb(`${instanceId}-${target}`) + const { dbg, info, error, warn } = logger.create(`InstanceLogReader`).breadcrumb(instanceId).breadcrumb(target) ensureInstanceDirectoryStructure(instanceId, volume, logger) diff --git a/packages/pockethost/src/services/InstanceService/index.ts b/packages/pockethost/src/services/InstanceService/index.ts index 8c7149a8..58ae22a3 100644 --- a/packages/pockethost/src/services/InstanceService/index.ts +++ b/packages/pockethost/src/services/InstanceService/index.ts @@ -60,7 +60,7 @@ export const instanceService = mkSingleton(async (config: InstanceServiceConfig) const shutdownManager: (() => void)[] = [] const { id, subdomain, version } = instance - const systemInstanceLogger = instanceServiceLogger.create(`${subdomain}:${id}:${version}`) + const systemInstanceLogger = instanceServiceLogger.create(subdomain).breadcrumb(id).breadcrumb(version) const { dbg, warn, error, info, trace } = systemInstanceLogger const userInstanceLogger = InstanceLogWriter(instance.id, instance.volume, `exec`, systemInstanceLogger) @@ -238,7 +238,7 @@ export const instanceService = mkSingleton(async (config: InstanceServiceConfig) ;(await proxyService()).use(async (req, res, next) => { const logger = (config.logger ?? LoggerService()).create(`InstanceRequest`) - const { dbg } = logger + const { dbg, warn, error } = logger const { host, proxy } = res.locals @@ -247,10 +247,12 @@ export const instanceService = mkSingleton(async (config: InstanceServiceConfig) res.status(404).end(`${host} not found`) return } + logger.breadcrumb(`i:${instance.id}`) const owner = await mirror.getUser(instance.uid) if (!owner) { throw new Error(`Instance owner is invalid`) } + logger.breadcrumb(`u:${owner.id}`) /* Suspension check diff --git a/packages/pockethost/src/services/PocketBaseService/index.ts b/packages/pockethost/src/services/PocketBaseService/index.ts index e2907833..c7a804f6 100644 --- a/packages/pockethost/src/services/PocketBaseService/index.ts +++ b/packages/pockethost/src/services/PocketBaseService/index.ts @@ -74,7 +74,7 @@ export const createPocketbaseService = async (config: PocketbaseServiceConfig) = } const { version, subdomain, instanceId, volume, extraBinds, env, stderr, stdout, dev } = _cfg - logger.breadcrumb(`${subdomain}-${instanceId}`) + logger.breadcrumb(subdomain).breadcrumb(instanceId) const iLogger = InstanceLogWriter(instanceId, volume, 'exec', logger) const _version = version || maxVersion // If _version is blank, we use the max version available