Skip to content

Commit f4afc39

Browse files
authored
feat(browser): Add tracing.replay.logs.metrics bundle (#19039)
closes #19004
1 parent 0c4875e commit f4afc39

File tree

7 files changed

+131
-50
lines changed

7 files changed

+131
-50
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -566,12 +566,13 @@ jobs:
566566
- esm
567567
- bundle
568568
- bundle_min
569+
- bundle_logs_metrics
569570
- bundle_replay
571+
- bundle_replay_logs_metrics
570572
- bundle_tracing
571-
- bundle_logs_metrics
572573
- bundle_tracing_logs_metrics
573-
- bundle_replay_logs_metrics
574574
- bundle_tracing_replay
575+
- bundle_tracing_replay_logs_metrics
575576
- bundle_tracing_replay_feedback
576577
- bundle_tracing_replay_feedback_min
577578
- bundle_tracing_replay_feedback_logs_metrics

.size-limit.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,12 @@ module.exports = [
210210
gzip: true,
211211
limit: '80 KB',
212212
},
213+
{
214+
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics)',
215+
path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'),
216+
gzip: true,
217+
limit: '81 KB',
218+
},
213219
{
214220
name: 'CDN Bundle (incl. Tracing, Replay, Feedback)',
215221
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
@@ -265,6 +271,13 @@ module.exports = [
265271
brotli: false,
266272
limit: '245 KB',
267273
},
274+
{
275+
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed',
276+
path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'),
277+
gzip: false,
278+
brotli: false,
279+
limit: '250 KB',
280+
},
268281
{
269282
name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed',
270283
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),

dev-packages/browser-integration-tests/package.json

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,24 @@
1919
"test:all": "npx playwright test -c playwright.browser.config.ts",
2020
"test:bundle": "PW_BUNDLE=bundle yarn test",
2121
"test:bundle:min": "PW_BUNDLE=bundle_min yarn test",
22+
"test:bundle:logs_metrics": "PW_BUNDLE=bundle_logs_metrics yarn test",
23+
"test:bundle:logs_metrics:min": "PW_BUNDLE=bundle_logs_metrics_min yarn test",
24+
"test:bundle:logs_metrics:debug_min": "PW_BUNDLE=bundle_logs_metrics_debug_min yarn test",
2225
"test:bundle:replay": "PW_BUNDLE=bundle_replay yarn test",
2326
"test:bundle:replay:min": "PW_BUNDLE=bundle_replay_min yarn test",
27+
"test:bundle:replay_logs_metrics": "PW_BUNDLE=bundle_replay_logs_metrics yarn test",
28+
"test:bundle:replay_logs_metrics:min": "PW_BUNDLE=bundle_replay_logs_metrics_min yarn test",
29+
"test:bundle:replay_logs_metrics:debug_min": "PW_BUNDLE=bundle_replay_logs_metrics_debug_min yarn test",
2430
"test:bundle:tracing": "PW_BUNDLE=bundle_tracing yarn test",
2531
"test:bundle:tracing:min": "PW_BUNDLE=bundle_tracing_min yarn test",
26-
"test:bundle:logs_metrics": "PW_BUNDLE=bundle_logs_metrics yarn test",
27-
"test:bundle:logs_metrics:min": "PW_BUNDLE=bundle_logs_metrics_min yarn test",
28-
"test:bundle:logs_metrics:debug_min": "PW_BUNDLE=bundle_logs_metrics_debug_min yarn test",
2932
"test:bundle:tracing_logs_metrics": "PW_BUNDLE=bundle_tracing_logs_metrics yarn test",
3033
"test:bundle:tracing_logs_metrics:min": "PW_BUNDLE=bundle_tracing_logs_metrics_min yarn test",
3134
"test:bundle:tracing_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_logs_metrics_debug_min yarn test",
32-
"test:bundle:replay_logs_metrics": "PW_BUNDLE=bundle_replay_logs_metrics yarn test",
33-
"test:bundle:replay_logs_metrics:min": "PW_BUNDLE=bundle_replay_logs_metrics_min yarn test",
34-
"test:bundle:replay_logs_metrics:debug_min": "PW_BUNDLE=bundle_replay_logs_metrics_debug_min yarn test",
35+
"test:bundle:tracing_replay": "PW_BUNDLE=bundle_tracing_replay yarn test",
36+
"test:bundle:tracing_replay:min": "PW_BUNDLE=bundle_tracing_replay_min yarn test",
37+
"test:bundle:tracing_replay_logs_metrics": "PW_BUNDLE=bundle_tracing_replay_logs_metrics yarn test",
38+
"test:bundle:tracing_replay_logs_metrics:min": "PW_BUNDLE=bundle_tracing_replay_logs_metrics_min yarn test",
39+
"test:bundle:tracing_replay_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_replay_logs_metrics_debug_min yarn test",
3540
"test:bundle:full": "PW_BUNDLE=bundle_tracing_replay_feedback yarn test",
3641
"test:bundle:full:min": "PW_BUNDLE=bundle_tracing_replay_feedback_min yarn test",
3742
"test:bundle:tracing_replay_feedback_logs_metrics": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics yarn test",

dev-packages/browser-integration-tests/utils/generatePlugin.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,24 @@ const BUNDLE_PATHS: Record<string, Record<string, string>> = {
5252
esm: 'build/npm/esm/prod/index.js',
5353
bundle: 'build/bundles/bundle.js',
5454
bundle_min: 'build/bundles/bundle.min.js',
55+
bundle_logs_metrics: 'build/bundles/bundle.logs.metrics.js',
56+
bundle_logs_metrics_min: 'build/bundles/bundle.logs.metrics.min.js',
57+
bundle_logs_metrics_debug_min: 'build/bundles/bundle.logs.metrics.debug.min.js',
5558
bundle_replay: 'build/bundles/bundle.replay.js',
5659
bundle_replay_min: 'build/bundles/bundle.replay.min.js',
60+
bundle_replay_logs_metrics: 'build/bundles/bundle.replay.logs.metrics.js',
61+
bundle_replay_logs_metrics_min: 'build/bundles/bundle.replay.logs.metrics.min.js',
62+
bundle_replay_logs_metrics_debug_min: 'build/bundles/bundle.replay.logs.metrics.debug.min.js',
5763
bundle_tracing: 'build/bundles/bundle.tracing.js',
5864
bundle_tracing_min: 'build/bundles/bundle.tracing.min.js',
59-
bundle_logs_metrics: 'build/bundles/bundle.logs.metrics.js',
60-
bundle_logs_metrics_min: 'build/bundles/bundle.logs.metrics.min.js',
61-
bundle_logs_metrics_debug_min: 'build/bundles/bundle.logs.metrics.debug.min.js',
6265
bundle_tracing_logs_metrics: 'build/bundles/bundle.tracing.logs.metrics.js',
6366
bundle_tracing_logs_metrics_min: 'build/bundles/bundle.tracing.logs.metrics.min.js',
6467
bundle_tracing_logs_metrics_debug_min: 'build/bundles/bundle.tracing.logs.metrics.debug.min.js',
65-
bundle_replay_logs_metrics: 'build/bundles/bundle.replay.logs.metrics.js',
66-
bundle_replay_logs_metrics_min: 'build/bundles/bundle.replay.logs.metrics.min.js',
67-
bundle_replay_logs_metrics_debug_min: 'build/bundles/bundle.replay.logs.metrics.debug.min.js',
6868
bundle_tracing_replay: 'build/bundles/bundle.tracing.replay.js',
6969
bundle_tracing_replay_min: 'build/bundles/bundle.tracing.replay.min.js',
70+
bundle_tracing_replay_logs_metrics: 'build/bundles/bundle.tracing.replay.logs.metrics.js',
71+
bundle_tracing_replay_logs_metrics_min: 'build/bundles/bundle.tracing.replay.logs.metrics.min.js',
72+
bundle_tracing_replay_logs_metrics_debug_min: 'build/bundles/bundle.tracing.replay.logs.metrics.debug.min.js',
7073
bundle_tracing_replay_feedback: 'build/bundles/bundle.tracing.replay.feedback.js',
7174
bundle_tracing_replay_feedback_min: 'build/bundles/bundle.tracing.replay.feedback.min.js',
7275
bundle_tracing_replay_feedback_logs_metrics: 'build/bundles/bundle.tracing.replay.feedback.logs.metrics.js',

packages/browser/rollup.bundle.config.mjs

Lines changed: 45 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -62,32 +62,25 @@ const baseBundleConfig = makeBaseBundleConfig({
6262
outputFileBase: () => 'bundles/bundle',
6363
});
6464

65-
const tracingBaseBundleConfig = makeBaseBundleConfig({
66-
bundleType: 'standalone',
67-
entrypoints: ['src/index.bundle.tracing.ts'],
68-
licenseTitle: '@sentry/browser (Performance Monitoring)',
69-
outputFileBase: () => 'bundles/bundle.tracing',
70-
});
71-
72-
const replayBaseBundleConfig = makeBaseBundleConfig({
73-
bundleType: 'standalone',
74-
entrypoints: ['src/index.bundle.replay.ts'],
75-
licenseTitle: '@sentry/browser (Replay)',
76-
outputFileBase: () => 'bundles/bundle.replay',
77-
});
78-
7965
const feedbackBaseBundleConfig = makeBaseBundleConfig({
8066
bundleType: 'standalone',
8167
entrypoints: ['src/index.bundle.feedback.ts'],
8268
licenseTitle: '@sentry/browser & @sentry/feedback',
8369
outputFileBase: () => 'bundles/bundle.feedback',
8470
});
8571

86-
const tracingReplayBaseBundleConfig = makeBaseBundleConfig({
72+
const logsMetricsBaseBundleConfig = makeBaseBundleConfig({
8773
bundleType: 'standalone',
88-
entrypoints: ['src/index.bundle.tracing.replay.ts'],
89-
licenseTitle: '@sentry/browser (Performance Monitoring and Replay)',
90-
outputFileBase: () => 'bundles/bundle.tracing.replay',
74+
entrypoints: ['src/index.bundle.logs.metrics.ts'],
75+
licenseTitle: '@sentry/browser (Logs and Metrics)',
76+
outputFileBase: () => 'bundles/bundle.logs.metrics',
77+
});
78+
79+
const replayBaseBundleConfig = makeBaseBundleConfig({
80+
bundleType: 'standalone',
81+
entrypoints: ['src/index.bundle.replay.ts'],
82+
licenseTitle: '@sentry/browser (Replay)',
83+
outputFileBase: () => 'bundles/bundle.replay',
9184
});
9285

9386
const replayFeedbackBaseBundleConfig = makeBaseBundleConfig({
@@ -97,18 +90,19 @@ const replayFeedbackBaseBundleConfig = makeBaseBundleConfig({
9790
outputFileBase: () => 'bundles/bundle.replay.feedback',
9891
});
9992

100-
const tracingReplayFeedbackBaseBundleConfig = makeBaseBundleConfig({
93+
const replayLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
10194
bundleType: 'standalone',
102-
entrypoints: ['src/index.bundle.tracing.replay.feedback.ts'],
103-
licenseTitle: '@sentry/browser (Performance Monitoring, Replay, and Feedback)',
104-
outputFileBase: () => 'bundles/bundle.tracing.replay.feedback',
95+
entrypoints: ['src/index.bundle.replay.logs.metrics.ts'],
96+
licenseTitle: '@sentry/browser (Replay, Logs, and Metrics)',
97+
outputFileBase: () => 'bundles/bundle.replay.logs.metrics',
10598
});
10699

107-
const logsMetricsBaseBundleConfig = makeBaseBundleConfig({
100+
// Tracing
101+
const tracingBaseBundleConfig = makeBaseBundleConfig({
108102
bundleType: 'standalone',
109-
entrypoints: ['src/index.bundle.logs.metrics.ts'],
110-
licenseTitle: '@sentry/browser (Logs and Metrics)',
111-
outputFileBase: () => 'bundles/bundle.logs.metrics',
103+
entrypoints: ['src/index.bundle.tracing.ts'],
104+
licenseTitle: '@sentry/browser (Performance Monitoring)',
105+
outputFileBase: () => 'bundles/bundle.tracing',
112106
});
113107

114108
const tracingLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
@@ -118,11 +112,25 @@ const tracingLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
118112
outputFileBase: () => 'bundles/bundle.tracing.logs.metrics',
119113
});
120114

121-
const replayLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
115+
const tracingReplayBaseBundleConfig = makeBaseBundleConfig({
122116
bundleType: 'standalone',
123-
entrypoints: ['src/index.bundle.replay.logs.metrics.ts'],
124-
licenseTitle: '@sentry/browser (Replay, Logs, and Metrics)',
125-
outputFileBase: () => 'bundles/bundle.replay.logs.metrics',
117+
entrypoints: ['src/index.bundle.tracing.replay.ts'],
118+
licenseTitle: '@sentry/browser (Performance Monitoring and Replay)',
119+
outputFileBase: () => 'bundles/bundle.tracing.replay',
120+
});
121+
122+
const tracingReplayLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
123+
bundleType: 'standalone',
124+
entrypoints: ['src/index.bundle.tracing.replay.logs.metrics.ts'],
125+
licenseTitle: '@sentry/browser (Performance Monitoring, Replay, Logs, and Metrics)',
126+
outputFileBase: () => 'bundles/bundle.tracing.replay.logs.metrics',
127+
});
128+
129+
const tracingReplayFeedbackBaseBundleConfig = makeBaseBundleConfig({
130+
bundleType: 'standalone',
131+
entrypoints: ['src/index.bundle.tracing.replay.feedback.ts'],
132+
licenseTitle: '@sentry/browser (Performance Monitoring, Replay, and Feedback)',
133+
outputFileBase: () => 'bundles/bundle.tracing.replay.feedback',
126134
});
127135

128136
const tracingReplayFeedbackLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
@@ -134,15 +142,16 @@ const tracingReplayFeedbackLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
134142

135143
builds.push(
136144
...makeBundleConfigVariants(baseBundleConfig),
137-
...makeBundleConfigVariants(tracingBaseBundleConfig),
138-
...makeBundleConfigVariants(replayBaseBundleConfig),
139145
...makeBundleConfigVariants(feedbackBaseBundleConfig),
140-
...makeBundleConfigVariants(tracingReplayBaseBundleConfig),
141-
...makeBundleConfigVariants(replayFeedbackBaseBundleConfig),
142-
...makeBundleConfigVariants(tracingReplayFeedbackBaseBundleConfig),
143146
...makeBundleConfigVariants(logsMetricsBaseBundleConfig),
144-
...makeBundleConfigVariants(tracingLogsMetricsBaseBundleConfig),
147+
...makeBundleConfigVariants(replayBaseBundleConfig),
148+
...makeBundleConfigVariants(replayFeedbackBaseBundleConfig),
145149
...makeBundleConfigVariants(replayLogsMetricsBaseBundleConfig),
150+
...makeBundleConfigVariants(tracingBaseBundleConfig),
151+
...makeBundleConfigVariants(tracingLogsMetricsBaseBundleConfig),
152+
...makeBundleConfigVariants(tracingReplayBaseBundleConfig),
153+
...makeBundleConfigVariants(tracingReplayLogsMetricsBaseBundleConfig),
154+
...makeBundleConfigVariants(tracingReplayFeedbackBaseBundleConfig),
146155
...makeBundleConfigVariants(tracingReplayFeedbackLogsMetricsBaseBundleConfig),
147156
);
148157

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { registerSpanErrorInstrumentation } from '@sentry/core';
2+
import { feedbackIntegrationShim } from '@sentry-internal/integration-shims';
3+
4+
registerSpanErrorInstrumentation();
5+
6+
export * from './index.bundle.base';
7+
8+
// TODO(v11): Export metrics here once we remove it from the base bundle.
9+
export { logger, consoleLoggingIntegration } from '@sentry/core';
10+
11+
export {
12+
getActiveSpan,
13+
getRootSpan,
14+
getSpanDescendants,
15+
setMeasurement,
16+
startInactiveSpan,
17+
startNewTrace,
18+
startSpan,
19+
startSpanManual,
20+
withActiveSpan,
21+
} from '@sentry/core';
22+
23+
export {
24+
browserTracingIntegration,
25+
startBrowserTracingNavigationSpan,
26+
startBrowserTracingPageLoadSpan,
27+
} from './tracing/browserTracingIntegration';
28+
export { reportPageLoaded } from './tracing/reportPageLoaded';
29+
export { setActiveSpanInBrowser } from './tracing/setActiveSpan';
30+
31+
export { feedbackIntegrationShim as feedbackAsyncIntegration, feedbackIntegrationShim as feedbackIntegration };
32+
33+
export { replayIntegration, getReplay } from '@sentry-internal/replay';
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { logger as coreLogger, metrics as coreMetrics } from '@sentry/core';
2+
import { feedbackIntegrationShim } from '@sentry-internal/integration-shims';
3+
import { describe, expect, it } from 'vitest';
4+
import { browserTracingIntegration, replayIntegration } from '../src';
5+
import * as TracingReplayLogsMetricsBundle from '../src/index.bundle.tracing.replay.logs.metrics';
6+
7+
describe('index.bundle.tracing.replay.logs.metrics', () => {
8+
it('has correct exports', () => {
9+
expect(TracingReplayLogsMetricsBundle.browserTracingIntegration).toBe(browserTracingIntegration);
10+
expect(TracingReplayLogsMetricsBundle.feedbackAsyncIntegration).toBe(feedbackIntegrationShim);
11+
expect(TracingReplayLogsMetricsBundle.feedbackIntegration).toBe(feedbackIntegrationShim);
12+
expect(TracingReplayLogsMetricsBundle.replayIntegration).toBe(replayIntegration);
13+
14+
expect(TracingReplayLogsMetricsBundle.logger).toBe(coreLogger);
15+
expect(TracingReplayLogsMetricsBundle.metrics).toBe(coreMetrics);
16+
});
17+
});

0 commit comments

Comments
 (0)