Skip to content

Commit 23133dc

Browse files
authored
feat(browser): Add replay.logs.metrics bundle (#19021)
closes #19003
1 parent 4ae412c commit 23133dc

File tree

7 files changed

+59
-0
lines changed

7 files changed

+59
-0
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -570,6 +570,7 @@ jobs:
570570
- bundle_tracing
571571
- bundle_logs_metrics
572572
- bundle_tracing_logs_metrics
573+
- bundle_replay_logs_metrics
573574
- bundle_tracing_replay
574575
- bundle_tracing_replay_feedback
575576
- bundle_tracing_replay_feedback_min

.size-limit.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,12 @@ module.exports = [
198198
gzip: true,
199199
limit: '44 KB',
200200
},
201+
{
202+
name: 'CDN Bundle (incl. Replay, Logs, Metrics)',
203+
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
204+
gzip: true,
205+
limit: '69 KB',
206+
},
201207
{
202208
name: 'CDN Bundle (incl. Tracing, Replay)',
203209
path: createCDNPath('bundle.tracing.replay.min.js'),
@@ -245,6 +251,13 @@ module.exports = [
245251
brotli: false,
246252
limit: '130 KB',
247253
},
254+
{
255+
name: 'CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed',
256+
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
257+
gzip: false,
258+
brotli: false,
259+
limit: '209 KB',
260+
},
248261
{
249262
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
250263
path: createCDNPath('bundle.tracing.replay.min.js'),

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
"test:bundle:tracing_logs_metrics": "PW_BUNDLE=bundle_tracing_logs_metrics yarn test",
3030
"test:bundle:tracing_logs_metrics:min": "PW_BUNDLE=bundle_tracing_logs_metrics_min yarn test",
3131
"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",
3235
"test:bundle:full": "PW_BUNDLE=bundle_tracing_replay_feedback yarn test",
3336
"test:bundle:full:min": "PW_BUNDLE=bundle_tracing_replay_feedback_min yarn test",
3437
"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: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ const BUNDLE_PATHS: Record<string, Record<string, string>> = {
6262
bundle_tracing_logs_metrics: 'build/bundles/bundle.tracing.logs.metrics.js',
6363
bundle_tracing_logs_metrics_min: 'build/bundles/bundle.tracing.logs.metrics.min.js',
6464
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',
6568
bundle_tracing_replay: 'build/bundles/bundle.tracing.replay.js',
6669
bundle_tracing_replay_min: 'build/bundles/bundle.tracing.replay.min.js',
6770
bundle_tracing_replay_feedback: 'build/bundles/bundle.tracing.replay.feedback.js',

packages/browser/rollup.bundle.config.mjs

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

121+
const replayLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
122+
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',
126+
});
127+
121128
const tracingReplayFeedbackLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
122129
bundleType: 'standalone',
123130
entrypoints: ['src/index.bundle.tracing.replay.feedback.logs.metrics.ts'],
@@ -135,6 +142,7 @@ builds.push(
135142
...makeBundleConfigVariants(tracingReplayFeedbackBaseBundleConfig),
136143
...makeBundleConfigVariants(logsMetricsBaseBundleConfig),
137144
...makeBundleConfigVariants(tracingLogsMetricsBaseBundleConfig),
145+
...makeBundleConfigVariants(replayLogsMetricsBaseBundleConfig),
138146
...makeBundleConfigVariants(tracingReplayFeedbackLogsMetricsBaseBundleConfig),
139147
);
140148

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { browserTracingIntegrationShim, feedbackIntegrationShim } from '@sentry-internal/integration-shims';
2+
3+
export * from './index.bundle.base';
4+
5+
// TODO(v11): Export metrics here once we remove it from the base bundle.
6+
export { logger, consoleLoggingIntegration } from '@sentry/core';
7+
8+
export { replayIntegration, getReplay } from '@sentry-internal/replay';
9+
10+
export {
11+
browserTracingIntegrationShim as browserTracingIntegration,
12+
feedbackIntegrationShim as feedbackAsyncIntegration,
13+
feedbackIntegrationShim as feedbackIntegration,
14+
};
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 { browserTracingIntegrationShim, feedbackIntegrationShim } from '@sentry-internal/integration-shims';
3+
import { describe, expect, it } from 'vitest';
4+
import { replayIntegration } from '../src';
5+
import * as ReplayLogsMetricsBundle from '../src/index.bundle.replay.logs.metrics';
6+
7+
describe('index.bundle.replay.logs.metrics', () => {
8+
it('has correct exports', () => {
9+
expect(ReplayLogsMetricsBundle.browserTracingIntegration).toBe(browserTracingIntegrationShim);
10+
expect(ReplayLogsMetricsBundle.feedbackAsyncIntegration).toBe(feedbackIntegrationShim);
11+
expect(ReplayLogsMetricsBundle.feedbackIntegration).toBe(feedbackIntegrationShim);
12+
expect(ReplayLogsMetricsBundle.replayIntegration).toBe(replayIntegration);
13+
14+
expect(ReplayLogsMetricsBundle.logger).toBe(coreLogger);
15+
expect(ReplayLogsMetricsBundle.metrics).toBe(coreMetrics);
16+
});
17+
});

0 commit comments

Comments
 (0)