@@ -13,14 +13,31 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
1313import { resourceFromAttributes } from '@opentelemetry/resources' ;
1414import type { NodeSDKConfiguration } from '@opentelemetry/sdk-node' ;
1515import { NodeSDK } from '@opentelemetry/sdk-node' ;
16- import { BatchSpanProcessor , type SpanProcessor } from '@opentelemetry/sdk-trace-base' ;
16+ import {
17+ BatchSpanProcessor ,
18+ type SpanProcessor ,
19+ NoopSpanProcessor ,
20+ } from '@opentelemetry/sdk-trace-base' ;
1721import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions' ;
22+ import { getLogger } from './logger' ;
1823
1924const otlpExporter = new OTLPTraceExporter ( ) ;
25+ const logger = getLogger ( 'instrumentation' ) ;
26+ /**
27+ * Creates a safe batch processor that falls back to no-op when SignOz is not configured
28+ */
29+ function createSafeBatchProcessor ( ) : SpanProcessor {
30+ try {
31+ return new BatchSpanProcessor ( otlpExporter , {
32+ scheduledDelayMillis : 1000 ,
33+ } ) ;
34+ } catch ( error ) {
35+ logger . warn ( { error } , 'Failed to create batch processor' ) ;
36+ return new NoopSpanProcessor ( ) ;
37+ }
38+ }
2039
21- export const defaultBatchProcessor = new BatchSpanProcessor ( otlpExporter , {
22- scheduledDelayMillis : 1000 ,
23- } ) ;
40+ export const defaultBatchProcessor = createSafeBatchProcessor ( ) ;
2441
2542export const defaultResource = resourceFromAttributes ( {
2643 [ ATTR_SERVICE_NAME ] : 'inkeep-agents-run-api' ,
@@ -66,6 +83,4 @@ export const defaultSDK = new NodeSDK({
6683 textMapPropagator : defaultTextMapPropagator ,
6784 spanProcessors : defaultSpanProcessors ,
6885 instrumentations : defaultInstrumentations ,
69-
7086} ) ;
71-
0 commit comments