From 35cb4c3c2a86b25d2d1582b0413efcb9f49ef67f Mon Sep 17 00:00:00 2001 From: Lukas Stracke Date: Fri, 9 Aug 2024 10:10:04 +0200 Subject: [PATCH] simplify otel implementation --- .../suites/tracing/meta-tags-twp/server.js | 4 +--- .../suites/tracing/meta-tags-twp/test.ts | 4 +--- .../opentelemetry/src/utils/getTraceData.ts | 24 ++++++------------- 3 files changed, 9 insertions(+), 23 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/server.js b/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/server.js index a9fed518b1f3..4dded9cd0ef6 100644 --- a/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/server.js +++ b/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/server.js @@ -4,7 +4,6 @@ const Sentry = require('@sentry/node'); Sentry.init({ dsn: 'https://public@dsn.ingest.sentry.io/1337', transport: loggingTransport, - debug: true, }); // express must be required after Sentry is initialized @@ -30,5 +29,4 @@ app.get('/test', (_req, res) => { Sentry.setupExpressErrorHandler(app); -// TODO: remove port again -startExpressServerAndSendPortToRunner(app, 3000); +startExpressServerAndSendPortToRunner(app); diff --git a/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/test.ts b/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/test.ts index 9366d9b78cfa..26614e96f1f2 100644 --- a/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing/meta-tags-twp/test.ts @@ -13,9 +13,7 @@ describe('getTraceMetaTags', () => { // @ts-ignore - response is defined, types just don't reflect it const html = response?.response as unknown as string; - console.log(html); - - const [_, traceId, spanId] = html.match(//) || [ + const [, traceId, spanId] = html.match(//) || [ undefined, undefined, undefined, diff --git a/packages/opentelemetry/src/utils/getTraceData.ts b/packages/opentelemetry/src/utils/getTraceData.ts index 0e8037054419..0647899b3890 100644 --- a/packages/opentelemetry/src/utils/getTraceData.ts +++ b/packages/opentelemetry/src/utils/getTraceData.ts @@ -1,30 +1,20 @@ import * as api from '@opentelemetry/api'; -import { getCurrentScope } from '@sentry/core'; import type { SerializedTraceData } from '@sentry/types'; -import { getPropagationContextFromSpan } from '../propagator'; -import { generateSpanContextForPropagationContext } from './generateSpanContextForPropagationContext'; +import { dropUndefinedKeys } from '@sentry/utils'; /** * Otel-specific implementation of `getTraceData`. * @see `@sentry/core` version of `getTraceData` for more information */ export function getTraceData(): SerializedTraceData { - const ctx = api.context.active(); - const spanToUse = api.trace.getSpan(ctx); + const context = api.context.active(); // This should never happen, given we always create an ambient non-recording span if there's no active span. - if (!spanToUse) { + if (!context) { return {}; } - const headersObject: Record = {}; - - const propagationContext = spanToUse - ? getPropagationContextFromSpan(spanToUse) - : getCurrentScope().getPropagationContext(); - const spanContext = generateSpanContextForPropagationContext(propagationContext); - - const context = api.trace.setSpanContext(ctx, spanContext); + const headersObject: Record = {}; api.propagation.inject(context, headersObject); @@ -32,8 +22,8 @@ export function getTraceData(): SerializedTraceData { return {}; } - return { + return dropUndefinedKeys({ 'sentry-trace': headersObject['sentry-trace'], - baggage: headersObject['baggage'], - }; + baggage: headersObject.baggage, + }); }