Skip to content

Commit b1f195c

Browse files
authored
fix(sdk): support parameters needed by Sentry SDK (#360)
1 parent a5ee50c commit b1f195c

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

packages/traceloop-sdk/src/lib/interfaces/initialize-options.interface.ts

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
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";
33
import type * as openai from "openai";
44
import type * as anthropic from "@anthropic-ai/sdk";
55
import 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

packages/traceloop-sdk/src/lib/tracing/index.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { NodeSDK } from "@opentelemetry/sdk-node";
33
import {
44
SimpleSpanProcessor,
55
BatchSpanProcessor,
6+
SpanProcessor,
67
} from "@opentelemetry/sdk-trace-node";
78
import { Span, context, diag } from "@opentelemetry/api";
89
import { 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

0 commit comments

Comments
 (0)