MCPcopy Create free account
hub / github.com/adcontextprotocol/adcp / initOtelLogs

Function initOtelLogs

server/src/utils/otel-logs.ts:66–111  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

64 * @returns true if initialized successfully, false if POSTHOG_API_KEY is not set
65 */
66export function initOtelLogs(): boolean {
67 if (!POSTHOG_API_KEY) {
68 console.log('[otel-logs] POSTHOG_API_KEY not set, skipping OpenTelemetry logs setup');
69 return false;
70 }
71
72 // Create resource with service information
73 const serviceName = process.env.OTEL_SERVICE_NAME || 'aao-server';
74 const resource = resourceFromAttributes({
75 [ATTR_SERVICE_NAME]: serviceName,
76 [ATTR_SERVICE_VERSION]: getPackageVersion(),
77 'deployment.environment': process.env.NODE_ENV || 'development',
78 'host.id': process.env.FLY_MACHINE_ID || 'unknown',
79 'cloud.region': process.env.FLY_REGION || 'unknown',
80 });
81
82 // Configure OTLP exporter for PostHog
83 const exporter = new OTLPLogExporter({
84 url: `${POSTHOG_HOST}/v1/logs`,
85 headers: {
86 Authorization: `Bearer ${POSTHOG_API_KEY}`,
87 },
88 });
89
90 // Create batch processor for performance
91 const processor = new BatchLogRecordProcessor(exporter, {
92 maxQueueSize: 2048,
93 maxExportBatchSize: 512,
94 scheduledDelayMillis: 5000,
95 });
96
97 // Create logger provider with resource and processor
98 loggerProvider = new LoggerProvider({
99 resource,
100 processors: [processor],
101 });
102
103 // Register as global provider
104 logs.setGlobalLoggerProvider(loggerProvider);
105
106 // Get logger instance
107 otelLogger = logs.getLogger('aao-server');
108
109 console.log('[otel-logs] OpenTelemetry logging initialized for PostHog');
110 return true;
111}
112
113// Minimum log level to send to PostHog (30 = info, 40 = warn, 50 = error)
114// Default to info (30) to capture operational logs, but configurable via env var

Callers 1

startMethod · 0.85

Calls 1

getPackageVersionFunction · 0.85

Tested by

no test coverage detected