From e8ce334184cb6334273c295a26a0263e6a5c57bd Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 11 Jan 2023 10:20:13 +0100 Subject: [PATCH] fix(otel): Set trace context via Otel Span instead of Sentry span --- .../opentelemetry-node/src/spanprocessor.ts | 23 ++++++++----------- .../test/spanprocessor.test.ts | 1 - 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/packages/opentelemetry-node/src/spanprocessor.ts b/packages/opentelemetry-node/src/spanprocessor.ts index dfb8c6f0d2b2..04cd452a1a82 100644 --- a/packages/opentelemetry-node/src/spanprocessor.ts +++ b/packages/opentelemetry-node/src/spanprocessor.ts @@ -22,25 +22,22 @@ export const SENTRY_SPAN_PROCESSOR_MAP: Map = export class SentrySpanProcessor implements OtelSpanProcessor { public constructor() { addGlobalEventProcessor(event => { - const otelSpan = trace.getActiveSpan(); + const otelSpan = trace.getActiveSpan() as OtelSpan; if (!otelSpan) { return event; } - const otelSpanId = otelSpan.spanContext().spanId; - const sentrySpan = SENTRY_SPAN_PROCESSOR_MAP.get(otelSpanId); - - if (!sentrySpan) { - return event; - } + const otelSpanContext = otelSpan.spanContext(); // If event has already set `trace` context, use that one. - // This happens in the case of transaction events. - event.contexts = { trace: sentrySpan.getTraceContext(), ...event.contexts }; - const transactionName = sentrySpan.transaction && sentrySpan.transaction.name; - if (transactionName) { - event.tags = { transaction: transactionName, ...event.tags }; - } + event.contexts = { + trace: { + trace_id: otelSpanContext.traceId, + span_id: otelSpanContext.spanId, + parent_span_id: otelSpan.parentSpanId, + }, + ...event.contexts, + }; return event; }); diff --git a/packages/opentelemetry-node/test/spanprocessor.test.ts b/packages/opentelemetry-node/test/spanprocessor.test.ts index 746f6e447c13..bd970bb737fd 100644 --- a/packages/opentelemetry-node/test/spanprocessor.test.ts +++ b/packages/opentelemetry-node/test/spanprocessor.test.ts @@ -744,7 +744,6 @@ describe('SentrySpanProcessor', () => { expect(sentryEvent).toBeDefined(); expect(sentryEvent.exception).toBeDefined(); expect(sentryEvent.contexts.trace).toEqual({ - description: otelSpan.name, parent_span_id: otelSpan.parentSpanId, span_id: otelSpan.spanContext().spanId, trace_id: otelSpan.spanContext().traceId,