From 763bc4ba51e4b581e5e1dade752c280f89a85d39 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Tue, 5 Mar 2024 11:00:02 +0000 Subject: [PATCH] feat: Export `getSpanDescendants` everywhere --- packages/astro/src/index.server.ts | 1 + .../browser/src/index.bundle.tracing.replay.feedback.ts | 1 + packages/browser/src/index.bundle.tracing.replay.ts | 1 + packages/browser/src/index.bundle.tracing.ts | 1 + packages/browser/src/index.ts | 1 + packages/bun/src/index.ts | 1 + packages/core/src/tracing/index.ts | 2 +- packages/core/src/tracing/transaction.ts | 4 ++-- packages/core/src/tracing/utils.ts | 4 ++-- packages/core/test/lib/tracing/trace.test.ts | 6 +++--- packages/node-experimental/src/index.ts | 1 + packages/node/src/index.ts | 1 + packages/remix/src/index.server.ts | 1 + packages/serverless/src/index.ts | 1 + packages/vercel-edge/src/index.ts | 1 + 15 files changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/astro/src/index.server.ts b/packages/astro/src/index.server.ts index 39012cc546b3..47c301801a35 100644 --- a/packages/astro/src/index.server.ts +++ b/packages/astro/src/index.server.ts @@ -66,6 +66,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, continueTrace, cron, parameterize, diff --git a/packages/browser/src/index.bundle.tracing.replay.feedback.ts b/packages/browser/src/index.bundle.tracing.replay.feedback.ts index 2ccc69a8456f..9dc1cf31d9eb 100644 --- a/packages/browser/src/index.bundle.tracing.replay.feedback.ts +++ b/packages/browser/src/index.bundle.tracing.replay.feedback.ts @@ -20,6 +20,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, } from '@sentry/core'; export { diff --git a/packages/browser/src/index.bundle.tracing.replay.ts b/packages/browser/src/index.bundle.tracing.replay.ts index 8c7ac5bb917f..5544851b1cc3 100644 --- a/packages/browser/src/index.bundle.tracing.replay.ts +++ b/packages/browser/src/index.bundle.tracing.replay.ts @@ -20,6 +20,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, } from '@sentry/core'; export { diff --git a/packages/browser/src/index.bundle.tracing.ts b/packages/browser/src/index.bundle.tracing.ts index c457db356d67..ad174b883b7a 100644 --- a/packages/browser/src/index.bundle.tracing.ts +++ b/packages/browser/src/index.bundle.tracing.ts @@ -25,6 +25,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, } from '@sentry/core'; export { diff --git a/packages/browser/src/index.ts b/packages/browser/src/index.ts index c6270e521188..e37a28543acf 100644 --- a/packages/browser/src/index.ts +++ b/packages/browser/src/index.ts @@ -75,6 +75,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, setMeasurement, // eslint-disable-next-line deprecation/deprecation getActiveTransaction, diff --git a/packages/bun/src/index.ts b/packages/bun/src/index.ts index 80ad94b8e460..c332f1c19109 100644 --- a/packages/bun/src/index.ts +++ b/packages/bun/src/index.ts @@ -68,6 +68,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, continueTrace, metricsDefault as metrics, functionToStringIntegration, diff --git a/packages/core/src/tracing/index.ts b/packages/core/src/tracing/index.ts index 9ca8f26eac3f..f6f65a59475d 100644 --- a/packages/core/src/tracing/index.ts +++ b/packages/core/src/tracing/index.ts @@ -4,7 +4,7 @@ export type { BeforeFinishCallback } from './idletransaction'; export { SentrySpan } from './sentrySpan'; export { Transaction } from './transaction'; // eslint-disable-next-line deprecation/deprecation -export { getActiveTransaction, getActiveSpan } from './utils'; +export { getActiveTransaction, getActiveSpan, getSpanDescendants } from './utils'; export { setHttpStatus, getSpanStatusFromHttpCode, diff --git a/packages/core/src/tracing/transaction.ts b/packages/core/src/tracing/transaction.ts index bb187f95f502..574b8888616d 100644 --- a/packages/core/src/tracing/transaction.ts +++ b/packages/core/src/tracing/transaction.ts @@ -22,7 +22,7 @@ import { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE import { spanTimeInputToSeconds, spanToJSON, spanToTraceContext } from '../utils/spanUtils'; import { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext'; import { SentrySpan, SpanRecorder } from './sentrySpan'; -import { getCapturedScopesOnSpan, getSpanTree } from './utils'; +import { getCapturedScopesOnSpan, getSpanDescendants } from './utils'; /** JSDoc */ export class Transaction extends SentrySpan implements TransactionInterface { @@ -255,7 +255,7 @@ export class Transaction extends SentrySpan implements TransactionInterface { } // The transaction span itself should be filtered out - const finishedSpans = getSpanTree(this).filter(span => span !== this); + const finishedSpans = getSpanDescendants(this).filter(span => span !== this); if (this._trimEnd && finishedSpans.length > 0) { const endTimes = finishedSpans.map(span => spanToJSON(span).timestamp).filter(Boolean) as number[]; diff --git a/packages/core/src/tracing/utils.ts b/packages/core/src/tracing/utils.ts index e01f92a028ba..44224ac6a59a 100644 --- a/packages/core/src/tracing/utils.ts +++ b/packages/core/src/tracing/utils.ts @@ -49,9 +49,9 @@ export function addChildSpanToSpan(span: SpanWithPotentialChildren, childSpan: S } /** - * Obtains the entire span tree, meaning a span + all of its descendants for a particular span. + * Returns an array of the given span and all of its descendants. */ -export function getSpanTree(span: SpanWithPotentialChildren): Span[] { +export function getSpanDescendants(span: SpanWithPotentialChildren): Span[] { const resultSet = new Set(); function addSpanChildren(span: SpanWithPotentialChildren): void { diff --git a/packages/core/test/lib/tracing/trace.test.ts b/packages/core/test/lib/tracing/trace.test.ts index 37b72193d2be..43585db1225a 100644 --- a/packages/core/test/lib/tracing/trace.test.ts +++ b/packages/core/test/lib/tracing/trace.test.ts @@ -19,7 +19,7 @@ import { startSpan, startSpanManual, } from '../../../src/tracing'; -import { getSpanTree } from '../../../src/tracing/utils'; +import { getSpanDescendants } from '../../../src/tracing/utils'; import { TestClient, getDefaultTestClientOptions } from '../../mocks/client'; beforeAll(() => { @@ -173,7 +173,7 @@ describe('startSpan', () => { } expect(_span).toBeDefined(); - const spans = getSpanTree(_span!); + const spans = getSpanDescendants(_span!); expect(spans).toHaveLength(2); expect(spanToJSON(spans[1]).description).toEqual('SELECT * from users'); @@ -200,7 +200,7 @@ describe('startSpan', () => { } expect(_span).toBeDefined(); - const spans = getSpanTree(_span!); + const spans = getSpanDescendants(_span!); expect(spans).toHaveLength(2); expect(spanToJSON(spans[1]).op).toEqual('db.query'); diff --git a/packages/node-experimental/src/index.ts b/packages/node-experimental/src/index.ts index 1e617743b321..f38eb904e823 100644 --- a/packages/node-experimental/src/index.ts +++ b/packages/node-experimental/src/index.ts @@ -86,6 +86,7 @@ export { Scope, setMeasurement, continueTrace, + getSpanDescendants, parameterize, getCurrentScope, getIsolationScope, diff --git a/packages/node/src/index.ts b/packages/node/src/index.ts index 571cef862d9c..b5da45e1b4d9 100644 --- a/packages/node/src/index.ts +++ b/packages/node/src/index.ts @@ -67,6 +67,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, continueTrace, parameterize, functionToStringIntegration, diff --git a/packages/remix/src/index.server.ts b/packages/remix/src/index.server.ts index 3b67422f4ae5..5860b9c41955 100644 --- a/packages/remix/src/index.server.ts +++ b/packages/remix/src/index.server.ts @@ -77,6 +77,7 @@ export { startSpanManual, startInactiveSpan, withActiveSpan, + getSpanDescendants, continueTrace, isInitialized, cron, diff --git a/packages/serverless/src/index.ts b/packages/serverless/src/index.ts index 5e153ae7f4c5..8f3108405e7e 100644 --- a/packages/serverless/src/index.ts +++ b/packages/serverless/src/index.ts @@ -70,6 +70,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, continueTrace, parameterize, requestDataIntegration, diff --git a/packages/vercel-edge/src/index.ts b/packages/vercel-edge/src/index.ts index b37ec1b92470..660c096bfa51 100644 --- a/packages/vercel-edge/src/index.ts +++ b/packages/vercel-edge/src/index.ts @@ -67,6 +67,7 @@ export { startInactiveSpan, startSpanManual, withActiveSpan, + getSpanDescendants, continueTrace, metrics, functionToStringIntegration,