Skip to content

Commit 656c5f5

Browse files
authored
feat(browser): Add CDN bundle for tracing.replay.feedback.logs.metrics (#18785)
closes #18783 ref #16314 Note that metrics were bundled into the base config and will be moved into this bundle starting with v11 (ref #18583)
1 parent 8cbb84a commit 656c5f5

File tree

7 files changed

+80
-0
lines changed

7 files changed

+80
-0
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ jobs:
572572
- bundle_tracing_replay
573573
- bundle_tracing_replay_feedback
574574
- bundle_tracing_replay_feedback_min
575+
- bundle_tracing_replay_feedback_logs_metrics
575576
project:
576577
- chromium
577578
include:

.size-limit.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,12 @@ module.exports = [
204204
gzip: true,
205205
limit: '86 KB',
206206
},
207+
{
208+
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)',
209+
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
210+
gzip: true,
211+
limit: '86 KB',
212+
},
207213
// browser CDN bundles (non-gzipped)
208214
{
209215
name: 'CDN Bundle - uncompressed',
@@ -240,6 +246,13 @@ module.exports = [
240246
brotli: false,
241247
limit: '264 KB',
242248
},
249+
{
250+
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed',
251+
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
252+
gzip: false,
253+
brotli: false,
254+
limit: '264 KB',
255+
},
243256
// Next.js SDK (ESM)
244257
{
245258
name: '@sentry/nextjs (client)',

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
"test:bundle:tracing_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_logs_metrics_debug_min yarn test",
2929
"test:bundle:full": "PW_BUNDLE=bundle_tracing_replay_feedback yarn test",
3030
"test:bundle:full:min": "PW_BUNDLE=bundle_tracing_replay_feedback_min yarn test",
31+
"test:bundle:tracing_replay_feedback_logs_metrics": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics yarn test",
32+
"test:bundle:tracing_replay_feedback_logs_metrics:min": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics_min yarn test",
33+
"test:bundle:tracing_replay_feedback_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_replay_feedback_logs_metrics_debug_min yarn test",
3134
"test:cjs": "PW_BUNDLE=cjs yarn test",
3235
"test:esm": "PW_BUNDLE=esm yarn test",
3336
"test:loader": "npx playwright test -c playwright.loader.config.ts --project='chromium'",

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ const BUNDLE_PATHS: Record<string, Record<string, string>> = {
6363
bundle_tracing_replay_min: 'build/bundles/bundle.tracing.replay.min.js',
6464
bundle_tracing_replay_feedback: 'build/bundles/bundle.tracing.replay.feedback.js',
6565
bundle_tracing_replay_feedback_min: 'build/bundles/bundle.tracing.replay.feedback.min.js',
66+
bundle_tracing_replay_feedback_logs_metrics: 'build/bundles/bundle.tracing.replay.feedback.logs.metrics.js',
67+
bundle_tracing_replay_feedback_logs_metrics_min: 'build/bundles/bundle.tracing.replay.feedback.logs.metrics.min.js',
68+
bundle_tracing_replay_feedback_logs_metrics_debug_min:
69+
'build/bundles/bundle.tracing.replay.feedback.logs.metrics.debug.min.js',
6670
loader_base: 'build/bundles/bundle.min.js',
6771
loader_eager: 'build/bundles/bundle.min.js',
6872
loader_debug: 'build/bundles/bundle.debug.min.js',

packages/browser/rollup.bundle.config.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,13 @@ const tracingLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
111111
outputFileBase: () => 'bundles/bundle.tracing.logs.metrics',
112112
});
113113

114+
const tracingReplayFeedbackLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
115+
bundleType: 'standalone',
116+
entrypoints: ['src/index.bundle.tracing.replay.feedback.logs.metrics.ts'],
117+
licenseTitle: '@sentry/browser (Performance Monitoring, Replay, Feedback, Logs, and Metrics)',
118+
outputFileBase: () => 'bundles/bundle.tracing.replay.feedback.logs.metrics',
119+
});
120+
114121
builds.push(
115122
...makeBundleConfigVariants(baseBundleConfig),
116123
...makeBundleConfigVariants(tracingBaseBundleConfig),
@@ -120,6 +127,7 @@ builds.push(
120127
...makeBundleConfigVariants(replayFeedbackBaseBundleConfig),
121128
...makeBundleConfigVariants(tracingReplayFeedbackBaseBundleConfig),
122129
...makeBundleConfigVariants(tracingLogsMetricsBaseBundleConfig),
130+
...makeBundleConfigVariants(tracingReplayFeedbackLogsMetricsBaseBundleConfig),
123131
);
124132

125133
export default builds;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { registerSpanErrorInstrumentation } from '@sentry/core';
2+
import { feedbackAsyncIntegration } from './feedbackAsync';
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 {
10+
getActiveSpan,
11+
getRootSpan,
12+
getSpanDescendants,
13+
setMeasurement,
14+
startInactiveSpan,
15+
startNewTrace,
16+
startSpan,
17+
startSpanManual,
18+
withActiveSpan,
19+
logger,
20+
consoleLoggingIntegration,
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 { getFeedback, sendFeedback } from '@sentry-internal/feedback';
32+
33+
export { feedbackAsyncIntegration as feedbackAsyncIntegration, feedbackAsyncIntegration as feedbackIntegration };
34+
35+
export { replayIntegration, getReplay } from '@sentry-internal/replay';
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { logger as coreLogger, metrics as coreMetrics } from '@sentry/core';
2+
import { describe, expect, it } from 'vitest';
3+
import { browserTracingIntegration, feedbackAsyncIntegration, replayIntegration } from '../src';
4+
import * as TracingReplayFeedbackLogsMetricsBundle from '../src/index.bundle.tracing.replay.feedback.logs.metrics';
5+
6+
describe('index.bundle.tracing.replay.feedback.logs.metrics', () => {
7+
it('has correct exports', () => {
8+
expect(TracingReplayFeedbackLogsMetricsBundle.browserTracingIntegration).toBe(browserTracingIntegration);
9+
expect(TracingReplayFeedbackLogsMetricsBundle.feedbackAsyncIntegration).toBe(feedbackAsyncIntegration);
10+
expect(TracingReplayFeedbackLogsMetricsBundle.feedbackIntegration).toBe(feedbackAsyncIntegration);
11+
expect(TracingReplayFeedbackLogsMetricsBundle.replayIntegration).toBe(replayIntegration);
12+
13+
expect(TracingReplayFeedbackLogsMetricsBundle.logger).toBe(coreLogger);
14+
expect(TracingReplayFeedbackLogsMetricsBundle.metrics).toBe(coreMetrics);
15+
});
16+
});

0 commit comments

Comments
 (0)