From 477128eceefa4f3f5bc8d7a82baea30f9c9a34f6 Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 11:52:12 -0400 Subject: [PATCH 1/9] ref(browser): Move navigation span descriptions into op --- packages/browser-utils/src/metrics/browserMetrics.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/browser-utils/src/metrics/browserMetrics.ts b/packages/browser-utils/src/metrics/browserMetrics.ts index b71f80df1ff2..2211730cfcf0 100644 --- a/packages/browser-utils/src/metrics/browserMetrics.ts +++ b/packages/browser-utils/src/metrics/browserMetrics.ts @@ -477,8 +477,8 @@ function _addPerformanceNavigationTiming( return; } startAndEndSpan(span, timeOrigin + msToSec(start), timeOrigin + msToSec(end), { - op: 'browser', - name: name || event, + op: `browser.${name || event}`, + name: entry.name, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', }, From 610585c09d96711e782504bb9d1466116779658b Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 13:08:25 -0400 Subject: [PATCH 2/9] adjust a test --- .../suites/tracing/metrics/pageload-browser-spans/test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts index 2b2d5fa8bae5..7efb4eb04e18 100644 --- a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts +++ b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts @@ -12,7 +12,7 @@ sentryTest('should add browser-related spans to pageload transaction', async ({ const url = await getLocalTestPath({ testDir: __dirname }); const eventData = await getFirstSentryEnvelopeRequest(page, url); - const browserSpans = eventData.spans?.filter(({ op }) => op === 'browser'); + const browserSpans = eventData.spans?.filter(({ op }) => op?.startsWith('browser')); // Spans `domContentLoadedEvent`, `connect`, `cache` and `DNS` are not // always inside `pageload` transaction. From 8ff8ac902923f743e0f966d0bf2f832a0503a671 Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 13:57:32 -0400 Subject: [PATCH 3/9] adjust another test --- .../suites/tracing/metrics/pageload-measure-spans/test.ts | 5 +++-- test-results/.last-run.json | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 test-results/.last-run.json diff --git a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts index 9209e8ca5c32..186c58992645 100644 --- a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts +++ b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts @@ -13,14 +13,15 @@ sentryTest('should add browser-related spans to pageload transaction', async ({ const url = await getLocalTestPath({ testDir: __dirname }); const eventData = await getFirstSentryEnvelopeRequest(page, url); - const browserSpans = eventData.spans?.filter(({ op }) => op === 'browser'); + const browserSpans = eventData.spans?.filter(({ op }) => op?.startsWith('browser')); // Spans `domContentLoadedEvent`, `connect`, `cache` and `DNS` are not // always inside `pageload` transaction. expect(browserSpans?.length).toBeGreaterThanOrEqual(4); - const requestSpan = browserSpans!.find(({ description }) => description === 'request'); + const requestSpan = browserSpans!.find(({ op }) => op === 'browser.request'); expect(requestSpan).toBeDefined(); + expect(requestSpan?.description).toBe('test'); const measureSpan = eventData.spans?.find(({ op }) => op === 'measure'); expect(measureSpan).toBeDefined(); diff --git a/test-results/.last-run.json b/test-results/.last-run.json new file mode 100644 index 000000000000..5fca3f84bc7b --- /dev/null +++ b/test-results/.last-run.json @@ -0,0 +1,4 @@ +{ + "status": "failed", + "failedTests": [] +} \ No newline at end of file From 7a10db719e2f38f33e0652d7a8df0cd00163f355 Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 14:42:39 -0400 Subject: [PATCH 4/9] update request and response spans and update tests --- .../suites/tracing/metrics/pageload-browser-spans/test.ts | 3 ++- .../suites/tracing/metrics/pageload-measure-spans/test.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts index 7efb4eb04e18..90660de34ded 100644 --- a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts +++ b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-browser-spans/test.ts @@ -21,7 +21,8 @@ sentryTest('should add browser-related spans to pageload transaction', async ({ ['loadEvent', 'request', 'response'].forEach(eventDesc => expect(browserSpans).toContainEqual( expect.objectContaining({ - description: eventDesc, + op: `browser.${eventDesc}`, + description: page.url(), parent_span_id: eventData.contexts?.trace?.span_id, }), ), diff --git a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts index 186c58992645..c53993cba21d 100644 --- a/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts +++ b/dev-packages/browser-integration-tests/suites/tracing/metrics/pageload-measure-spans/test.ts @@ -21,7 +21,7 @@ sentryTest('should add browser-related spans to pageload transaction', async ({ const requestSpan = browserSpans!.find(({ op }) => op === 'browser.request'); expect(requestSpan).toBeDefined(); - expect(requestSpan?.description).toBe('test'); + expect(requestSpan?.description).toBe(page.url()); const measureSpan = eventData.spans?.find(({ op }) => op === 'measure'); expect(measureSpan).toBeDefined(); From 0d418c2f73ab99d121fb43659cd66df8ec9e72ed Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 14:43:57 -0400 Subject: [PATCH 5/9] update request and response spans --- packages/browser-utils/src/metrics/browserMetrics.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/browser-utils/src/metrics/browserMetrics.ts b/packages/browser-utils/src/metrics/browserMetrics.ts index 2211730cfcf0..32d8b22e8756 100644 --- a/packages/browser-utils/src/metrics/browserMetrics.ts +++ b/packages/browser-utils/src/metrics/browserMetrics.ts @@ -497,16 +497,16 @@ function _addRequest(span: Span, entry: Record, timeOrigin: number) // In order not to produce faulty spans, where the end timestamp is before the start timestamp, we will only collect // these spans when the responseEnd value is available. The backend (Relay) would drop the entire span if it contained faulty spans. startAndEndSpan(span, requestStartTimestamp, responseEndTimestamp, { - op: 'browser', - name: 'request', + op: 'browser.request', + name: entry.name, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', }, }); startAndEndSpan(span, responseStartTimestamp, responseEndTimestamp, { - op: 'browser', - name: 'response', + op: 'browser.response', + name: entry.name, attributes: { [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ui.browser.metrics', }, From f5955cb975442cd2694e0262e105ab496b67b9af Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 14:44:36 -0400 Subject: [PATCH 6/9] remove test results file --- test-results/.last-run.json | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 test-results/.last-run.json diff --git a/test-results/.last-run.json b/test-results/.last-run.json deleted file mode 100644 index 5fca3f84bc7b..000000000000 --- a/test-results/.last-run.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": "failed", - "failedTests": [] -} \ No newline at end of file From db010bd165dcce891c2e27e79c0254a161aa78fc Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 15:05:14 -0400 Subject: [PATCH 7/9] update an e2e test i missed --- .../tests/transactions.test.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts index 10442a4a2bde..9bb80c1eff75 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts @@ -44,8 +44,8 @@ test('Captures a pageload transaction', async ({ page }) => { 'sentry.origin': 'auto.ui.browser.metrics', 'sentry.op': 'browser', }, - description: 'domContentLoadedEvent', - op: 'browser', + description: page.url(), + op: 'browser.domContentLoadedEvent', parent_span_id: expect.any(String), span_id: expect.any(String), start_timestamp: expect.any(Number), @@ -58,8 +58,8 @@ test('Captures a pageload transaction', async ({ page }) => { 'sentry.origin': 'auto.ui.browser.metrics', 'sentry.op': 'browser', }, - description: 'connect', - op: 'browser', + description: page.url(), + op: 'browser.connect', parent_span_id: expect.any(String), span_id: expect.any(String), start_timestamp: expect.any(Number), @@ -72,8 +72,8 @@ test('Captures a pageload transaction', async ({ page }) => { 'sentry.origin': 'auto.ui.browser.metrics', 'sentry.op': 'browser', }, - description: 'request', - op: 'browser', + description: page.url(), + op: 'browser.request', parent_span_id: expect.any(String), span_id: expect.any(String), start_timestamp: expect.any(Number), @@ -86,8 +86,8 @@ test('Captures a pageload transaction', async ({ page }) => { 'sentry.origin': 'auto.ui.browser.metrics', 'sentry.op': 'browser', }, - description: 'response', - op: 'browser', + description: page.url(), + op: 'browser.response', parent_span_id: expect.any(String), span_id: expect.any(String), start_timestamp: expect.any(Number), From cb21d0c696b044c6734bb8546458412808e78729 Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 29 Aug 2024 15:29:38 -0400 Subject: [PATCH 8/9] update sentry.op in tests --- .../react-create-hash-router/tests/transactions.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts index 9bb80c1eff75..0c700f9fb270 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/transactions.test.ts @@ -42,7 +42,7 @@ test('Captures a pageload transaction', async ({ page }) => { expect(transactionEvent.spans).toContainEqual({ data: { 'sentry.origin': 'auto.ui.browser.metrics', - 'sentry.op': 'browser', + 'sentry.op': 'browser.domContentLoadedEvent', }, description: page.url(), op: 'browser.domContentLoadedEvent', @@ -56,7 +56,7 @@ test('Captures a pageload transaction', async ({ page }) => { expect(transactionEvent.spans).toContainEqual({ data: { 'sentry.origin': 'auto.ui.browser.metrics', - 'sentry.op': 'browser', + 'sentry.op': 'browser.connect', }, description: page.url(), op: 'browser.connect', @@ -70,7 +70,7 @@ test('Captures a pageload transaction', async ({ page }) => { expect(transactionEvent.spans).toContainEqual({ data: { 'sentry.origin': 'auto.ui.browser.metrics', - 'sentry.op': 'browser', + 'sentry.op': 'browser.request', }, description: page.url(), op: 'browser.request', @@ -84,7 +84,7 @@ test('Captures a pageload transaction', async ({ page }) => { expect(transactionEvent.spans).toContainEqual({ data: { 'sentry.origin': 'auto.ui.browser.metrics', - 'sentry.op': 'browser', + 'sentry.op': 'browser.response', }, description: page.url(), op: 'browser.response', From cf18b7bab2378f9d0d09e47eb4e717d74f93e6f1 Mon Sep 17 00:00:00 2001 From: Ash Anand Date: Thu, 19 Sep 2024 13:30:20 -0400 Subject: [PATCH 9/9] add unreleased changelog entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8232b230c17c..38c05c249f50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ ## Unreleased - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +- Moved description of `browser` spans into the operation, e.g. `browser - cache` -> `browser.cache` and set the URL as + the description Work in this release was contributed by @leopoldkristjansson. Thank you for your contribution!