MCPcopy
hub / github.com/codeaashu/claude-code / initializeBetaTracing

Function initializeBetaTracing

src/utils/telemetry/instrumentation.ts:353–419  ·  view source on GitHub ↗

* Initialize beta tracing - a separate code path for detailed debugging. * Uses BETA_TRACING_ENDPOINT instead of OTEL_EXPORTER_OTLP_ENDPOINT.

(
  resource: ReturnType<typeof resourceFromAttributes>,
)

Source from the content-addressed store, hash-verified

351 * Uses BETA_TRACING_ENDPOINT instead of OTEL_EXPORTER_OTLP_ENDPOINT.
352 */
353async function initializeBetaTracing(
354 resource: ReturnType<typeof resourceFromAttributes>,
355): Promise<void> {
356 const endpoint = process.env.BETA_TRACING_ENDPOINT
357 if (!endpoint) {
358 return
359 }
360
361 const [{ OTLPTraceExporter }, { OTLPLogExporter }] = await Promise.all([
362 import('@opentelemetry/exporter-trace-otlp-http'),
363 import('@opentelemetry/exporter-logs-otlp-http'),
364 ])
365
366 const httpConfig = {
367 url: `${endpoint}/v1/traces`,
368 }
369
370 const logHttpConfig = {
371 url: `${endpoint}/v1/logs`,
372 }
373
374 // Initialize trace exporter
375 const traceExporter = new OTLPTraceExporter(httpConfig)
376 const spanProcessor = new BatchSpanProcessor(traceExporter, {
377 scheduledDelayMillis: DEFAULT_TRACES_EXPORT_INTERVAL_MS,
378 })
379
380 const tracerProvider = new BasicTracerProvider({
381 resource,
382 spanProcessors: [spanProcessor],
383 })
384
385 trace.setGlobalTracerProvider(tracerProvider)
386 setTracerProvider(tracerProvider)
387
388 // Initialize log exporter
389 const logExporter = new OTLPLogExporter(logHttpConfig)
390 const loggerProvider = new LoggerProvider({
391 resource,
392 processors: [
393 new BatchLogRecordProcessor(logExporter, {
394 scheduledDelayMillis: DEFAULT_LOGS_EXPORT_INTERVAL_MS,
395 }),
396 ],
397 })
398
399 logs.setGlobalLoggerProvider(loggerProvider)
400 setLoggerProvider(loggerProvider)
401
402 // Initialize event logger
403 const eventLogger = logs.getLogger(
404 'com.anthropic.claude_code.events',
405 MACRO.VERSION,
406 )
407 setEventLogger(eventLogger)
408
409 // Setup flush handlers - flush both logs AND traces
410 process.on('beforeExit', async () => {

Callers 1

initializeTelemetryFunction · 0.85

Calls 5

setTracerProviderFunction · 0.85
setLoggerProviderFunction · 0.85
setEventLoggerFunction · 0.85
onMethod · 0.80
forceFlushMethod · 0.45

Tested by

no test coverage detected