Skip to content

Commit e60f960

Browse files
authored
feat(browser): Add logs.metrics bundle (#19020)
closes #19002
1 parent 96fe5bc commit e60f960

File tree

8 files changed

+59
-2
lines changed

8 files changed

+59
-2
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,7 @@ jobs:
568568
- bundle_min
569569
- bundle_replay
570570
- bundle_tracing
571+
- bundle_logs_metrics
571572
- bundle_tracing_logs_metrics
572573
- bundle_tracing_replay
573574
- bundle_tracing_replay_feedback

.size-limit.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,12 @@ module.exports = [
186186
gzip: true,
187187
limit: '43 KB',
188188
},
189+
{
190+
name: 'CDN Bundle (incl. Logs, Metrics)',
191+
path: createCDNPath('bundle.logs.metrics.min.js'),
192+
gzip: true,
193+
limit: '29 KB',
194+
},
189195
{
190196
name: 'CDN Bundle (incl. Tracing, Logs, Metrics)',
191197
path: createCDNPath('bundle.tracing.logs.metrics.min.js'),
@@ -225,6 +231,13 @@ module.exports = [
225231
brotli: false,
226232
limit: '128 KB',
227233
},
234+
{
235+
name: 'CDN Bundle (incl. Logs, Metrics) - uncompressed',
236+
path: createCDNPath('bundle.logs.metrics.min.js'),
237+
gzip: false,
238+
brotli: false,
239+
limit: '86 KB',
240+
},
228241
{
229242
name: 'CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed',
230243
path: createCDNPath('bundle.tracing.logs.metrics.min.js'),

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
"test:bundle:replay:min": "PW_BUNDLE=bundle_replay_min yarn test",
2424
"test:bundle:tracing": "PW_BUNDLE=bundle_tracing yarn test",
2525
"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",
2629
"test:bundle:tracing_logs_metrics": "PW_BUNDLE=bundle_tracing_logs_metrics yarn test",
2730
"test:bundle:tracing_logs_metrics:min": "PW_BUNDLE=bundle_tracing_logs_metrics_min yarn test",
2831
"test:bundle:tracing_logs_metrics:debug_min": "PW_BUNDLE=bundle_tracing_logs_metrics_debug_min yarn test",

dev-packages/browser-integration-tests/suites/public-api/metrics/simple/test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ import {
55
getFirstSentryEnvelopeRequest,
66
properFullEnvelopeRequestParser,
77
shouldSkipMetricsTest,
8+
shouldSkipTracingTest,
89
} from '../../../../utils/helpers';
910

1011
sentryTest('should capture all metric types', async ({ getLocalTestUrl, page }) => {
11-
// Only run this for npm package exports and CDN bundles with metrics
12-
if (shouldSkipMetricsTest()) {
12+
// Only run this for npm package exports and CDN bundles with metrics and tracing
13+
// (the test uses Sentry.startSpan which requires tracing)
14+
if (shouldSkipMetricsTest() || shouldSkipTracingTest()) {
1315
sentryTest.skip();
1416
}
1517

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ const BUNDLE_PATHS: Record<string, Record<string, string>> = {
5656
bundle_replay_min: 'build/bundles/bundle.replay.min.js',
5757
bundle_tracing: 'build/bundles/bundle.tracing.js',
5858
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',
5962
bundle_tracing_logs_metrics: 'build/bundles/bundle.tracing.logs.metrics.js',
6063
bundle_tracing_logs_metrics_min: 'build/bundles/bundle.tracing.logs.metrics.min.js',
6164
bundle_tracing_logs_metrics_debug_min: 'build/bundles/bundle.tracing.logs.metrics.debug.min.js',

packages/browser/rollup.bundle.config.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,13 @@ const tracingReplayFeedbackBaseBundleConfig = makeBaseBundleConfig({
104104
outputFileBase: () => 'bundles/bundle.tracing.replay.feedback',
105105
});
106106

107+
const logsMetricsBaseBundleConfig = makeBaseBundleConfig({
108+
bundleType: 'standalone',
109+
entrypoints: ['src/index.bundle.logs.metrics.ts'],
110+
licenseTitle: '@sentry/browser (Logs and Metrics)',
111+
outputFileBase: () => 'bundles/bundle.logs.metrics',
112+
});
113+
107114
const tracingLogsMetricsBaseBundleConfig = makeBaseBundleConfig({
108115
bundleType: 'standalone',
109116
entrypoints: ['src/index.bundle.tracing.logs.metrics.ts'],
@@ -126,6 +133,7 @@ builds.push(
126133
...makeBundleConfigVariants(tracingReplayBaseBundleConfig),
127134
...makeBundleConfigVariants(replayFeedbackBaseBundleConfig),
128135
...makeBundleConfigVariants(tracingReplayFeedbackBaseBundleConfig),
136+
...makeBundleConfigVariants(logsMetricsBaseBundleConfig),
129137
...makeBundleConfigVariants(tracingLogsMetricsBaseBundleConfig),
130138
...makeBundleConfigVariants(tracingReplayFeedbackLogsMetricsBaseBundleConfig),
131139
);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import {
2+
browserTracingIntegrationShim,
3+
feedbackIntegrationShim,
4+
replayIntegrationShim,
5+
} from '@sentry-internal/integration-shims';
6+
7+
export * from './index.bundle.base';
8+
9+
// TODO(v11): Export metrics here once we remove it from the base bundle.
10+
export { logger, consoleLoggingIntegration } from '@sentry/core';
11+
12+
export {
13+
browserTracingIntegrationShim as browserTracingIntegration,
14+
feedbackIntegrationShim as feedbackAsyncIntegration,
15+
feedbackIntegrationShim as feedbackIntegration,
16+
replayIntegrationShim as replayIntegration,
17+
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { logger as coreLogger, metrics as coreMetrics } from '@sentry/core';
2+
import { describe, expect, it } from 'vitest';
3+
import * as LogsMetricsBundle from '../src/index.bundle.logs.metrics';
4+
5+
describe('index.bundle.logs.metrics', () => {
6+
it('has correct exports', () => {
7+
expect(LogsMetricsBundle.logger).toBe(coreLogger);
8+
expect(LogsMetricsBundle.metrics).toBe(coreMetrics);
9+
});
10+
});

0 commit comments

Comments
 (0)