refactor(pockethost): improve breadcrumb handling in logging services for better clarity

This commit is contained in:
Ben Allfree 2025-07-22 02:33:08 +00:00
parent 01540dad27
commit 049e9e5263
3 changed files with 7 additions and 5 deletions

View File

@ -75,7 +75,7 @@ const MultiChannelLimiter = () => {
const limiter = MultiChannelLimiter() const limiter = MultiChannelLimiter()
export function InstanceLogWriter(instanceId: string, volume: string, target: string, logger: Logger) { 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 const { dbg, info, error, warn } = lgr
ensureInstanceDirectoryStructure(instanceId, volume, 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) { 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) ensureInstanceDirectoryStructure(instanceId, volume, logger)

View File

@ -60,7 +60,7 @@ export const instanceService = mkSingleton(async (config: InstanceServiceConfig)
const shutdownManager: (() => void)[] = [] const shutdownManager: (() => void)[] = []
const { id, subdomain, version } = instance 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 { dbg, warn, error, info, trace } = systemInstanceLogger
const userInstanceLogger = InstanceLogWriter(instance.id, instance.volume, `exec`, 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) => { ;(await proxyService()).use(async (req, res, next) => {
const logger = (config.logger ?? LoggerService()).create(`InstanceRequest`) const logger = (config.logger ?? LoggerService()).create(`InstanceRequest`)
const { dbg } = logger const { dbg, warn, error } = logger
const { host, proxy } = res.locals const { host, proxy } = res.locals
@ -247,10 +247,12 @@ export const instanceService = mkSingleton(async (config: InstanceServiceConfig)
res.status(404).end(`${host} not found`) res.status(404).end(`${host} not found`)
return return
} }
logger.breadcrumb(`i:${instance.id}`)
const owner = await mirror.getUser(instance.uid) const owner = await mirror.getUser(instance.uid)
if (!owner) { if (!owner) {
throw new Error(`Instance owner is invalid`) throw new Error(`Instance owner is invalid`)
} }
logger.breadcrumb(`u:${owner.id}`)
/* /*
Suspension check Suspension check

View File

@ -74,7 +74,7 @@ export const createPocketbaseService = async (config: PocketbaseServiceConfig) =
} }
const { version, subdomain, instanceId, volume, extraBinds, env, stderr, stdout, dev } = _cfg 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 iLogger = InstanceLogWriter(instanceId, volume, 'exec', logger)
const _version = version || maxVersion // If _version is blank, we use the max version available const _version = version || maxVersion // If _version is blank, we use the max version available