import { isPresent } from '@/utils/misc'; const secretKey = process.env.ILLUMA_SECRET_KEY; const publicKey = process.env.ILLUMA_PUBLIC_KEY; const baseUrl = process.env.ILLUMA_BASE_URL; const environment = process.env.ILLUMA_ENVIRONMENT ?? process.env.NODE_ENV ?? 'development'; if (isPresent(secretKey) && isPresent(publicKey) && isPresent(baseUrl)) { /** * Dynamic import: @illuma-ai/observability-otel and @opentelemetry/sdk-node * are dependencies. Gracefully skip if import fails. */ Promise.all([ import('@opentelemetry/sdk-node'), import('@illuma-ai/observability-otel'), ]) .then(([{ NodeSDK }, { IllumaSpanProcessor }]) => { const spanProcessor = new IllumaSpanProcessor({ publicKey: publicKey!, secretKey: secretKey!, baseUrl: baseUrl!, environment, }); const sdk = new NodeSDK({ spanProcessors: [spanProcessor], }); sdk.start(); }) .catch((err: unknown) => { if ( err instanceof Error && (err as NodeJS.ErrnoException).code !== 'ERR_MODULE_NOT_FOUND' ) { console.warn( '[instrumentation] Failed to initialize OTel:', (err as Error).message ); } }); }