File tree Expand file tree Collapse file tree 2 files changed +29
-3
lines changed
packages/traceloop-sdk/src/lib Expand file tree Collapse file tree 2 files changed +29
-3
lines changed Original file line number Diff line number Diff line change 1- import { SpanExporter } from "@opentelemetry/sdk-trace-base" ;
2-
1+ import { SpanExporter , SpanProcessor } from "@opentelemetry/sdk-trace-base" ;
2+ import { TextMapPropagator , ContextManager } from "@opentelemetry/api" ;
33import type * as openai from "openai" ;
44import type * as anthropic from "@anthropic-ai/sdk" ;
55import type * as azure from "@azure/openai" ;
@@ -67,6 +67,24 @@ export interface InitializeOptions {
6767 */
6868 exporter ?: SpanExporter ;
6969
70+ /**
71+ * The OpenTelemetry SpanProcessor to be used for processing traces data. Optional.
72+ * Defaults to the BatchSpanProcessor.
73+ */
74+ processor ?: SpanProcessor ;
75+
76+ /**
77+ * The OpenTelemetry Propagator to use. Optional.
78+ * Defaults to OpenTelemetry SDK defaults.
79+ */
80+ propagator ?: TextMapPropagator ;
81+
82+ /**
83+ * The OpenTelemetry ContextManager to use. Optional.
84+ * Defaults to OpenTelemetry SDK defaults.
85+ */
86+ contextManager ?: ContextManager ;
87+
7088 /**
7189 * Explicitly specify modules to instrument. Optional.
7290 * This is a workaround specific to Next.js, see https://www.traceloop.com/docs/openllmetry/getting-started-nextjs
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import { NodeSDK } from "@opentelemetry/sdk-node";
33import {
44 SimpleSpanProcessor ,
55 BatchSpanProcessor ,
6+ SpanProcessor ,
67} from "@opentelemetry/sdk-trace-node" ;
78import { Span , context , diag } from "@opentelemetry/api" ;
89import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto" ;
@@ -281,12 +282,19 @@ export const startTracing = (options: InitializeOptions) => {
281282 } ) ;
282283 }
283284
285+ const spanProcessors : SpanProcessor [ ] = [ _spanProcessor ] ;
286+ if ( options . processor ) {
287+ spanProcessors . push ( options . processor ) ;
288+ }
289+
284290 _sdk = new NodeSDK ( {
285291 resource : new Resource ( {
286292 [ SEMRESATTRS_SERVICE_NAME ] :
287293 options . appName || process . env . npm_package_name ,
288294 } ) ,
289- spanProcessors : [ _spanProcessor ] ,
295+ spanProcessors,
296+ contextManager : options . contextManager ,
297+ textMapPropagator : options . propagator ,
290298 traceExporter,
291299 instrumentations,
292300 // We should re-consider removing unrelevant spans here in the future
You can’t perform that action at this time.
0 commit comments