diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ad33a150c7b..07446cb8f51e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott + +## 6.12.0-beta.2 + +- feat(perf): Make sure option is set correctly (https://github.com/getsentry/sentry-javascript/commit/fae9e68151747fd319afd661ef71a8e75fe062ed) + +## 6.12.0-beta.1 + +- feat(perf): Add experimental option to improve LCP collection (https://github.com/getsentry/sentry-javascript/pull/3879) + ## 6.11.1 - fix(nextjs): Differentiate between webpack 4 and 5 in server builds (#3878) diff --git a/lerna.json b/lerna.json index 75225f44613c..549bcddfc3e3 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "3.4.0", - "version": "6.11.0", + "version": "6.12.0-beta.2", "packages": "packages/*", "npmClient": "yarn", "useWorkspaces": true diff --git a/packages/angular/package.json b/packages/angular/package.json index 90f3978bb0bd..efa779139882 100644 --- a/packages/angular/package.json +++ b/packages/angular/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/angular", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for Angular", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/angular", @@ -21,9 +21,9 @@ "@angular/router": "10.x || 11.x || 12.x" }, "dependencies": { - "@sentry/browser": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/browser": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "rxjs": "^6.6.0", "tslib": "^1.9.3" }, @@ -31,7 +31,7 @@ "@angular/common": "^10.0.3", "@angular/core": "^10.0.3", "@angular/router": "^10.0.3", - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "npm-run-all": "^4.1.2", "prettier": "1.19.0", "rimraf": "^2.6.3", diff --git a/packages/browser/package.json b/packages/browser/package.json index a7ae2d96e68a..37de9cab4c0a 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/browser", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for browsers", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/browser", @@ -16,13 +16,13 @@ "access": "public" }, "dependencies": { - "@sentry/core": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/core": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@types/eslint": "^7.2.0", "@types/md5": "2.1.33", "btoa": "^1.2.1", diff --git a/packages/core/package.json b/packages/core/package.json index b214b6afebd0..c171383932a6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/core", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Base implementation for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/core", @@ -16,14 +16,14 @@ "access": "public" }, "dependencies": { - "@sentry/hub": "6.11.0", - "@sentry/minimal": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/hub": "6.12.0-beta.2", + "@sentry/minimal": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "jest": "^24.7.1", "npm-run-all": "^4.1.2", "prettier": "1.19.0", diff --git a/packages/core/src/version.ts b/packages/core/src/version.ts index f691589c389e..18a3f15bca2c 100644 --- a/packages/core/src/version.ts +++ b/packages/core/src/version.ts @@ -1 +1 @@ -export const SDK_VERSION = '6.11.0'; +export const SDK_VERSION = '6.12.0-beta.2'; diff --git a/packages/ember/package.json b/packages/ember/package.json index 9aaf72be1b15..c8f5a3a3ad4b 100644 --- a/packages/ember/package.json +++ b/packages/ember/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/ember", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for Ember.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/ember", @@ -32,10 +32,10 @@ }, "dependencies": { "@embroider/macros": "~0.37.0", - "@sentry/browser": "6.11.0", - "@sentry/tracing": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/browser": "6.12.0-beta.2", + "@sentry/tracing": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "ember-auto-import": "^1.6.0", "ember-cli-babel": "^7.26.6", "ember-cli-htmlbars": "^5.1.2", @@ -47,7 +47,7 @@ "@embroider/test-setup": "~0.37.0", "@glimmer/component": "^1.0.0", "@glimmer/tracking": "^1.0.0", - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@types/ember": "^3.16.5", "@types/ember-qunit": "^3.4.9", "@types/ember__test-helpers": "^1.7.0", diff --git a/packages/eslint-config-sdk/package.json b/packages/eslint-config-sdk/package.json index 87b07ee2b073..10f49fe42a21 100644 --- a/packages/eslint-config-sdk/package.json +++ b/packages/eslint-config-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/eslint-config-sdk", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK eslint config", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/eslint-config-sdk", @@ -19,8 +19,8 @@ "access": "public" }, "dependencies": { - "@sentry-internal/eslint-plugin-sdk": "6.11.0", - "@sentry-internal/typescript": "6.11.0", + "@sentry-internal/eslint-plugin-sdk": "6.12.0-beta.2", + "@sentry-internal/typescript": "6.12.0-beta.2", "@typescript-eslint/eslint-plugin": "^3.9.0", "@typescript-eslint/parser": "^3.9.0", "eslint-config-prettier": "^6.11.0", diff --git a/packages/eslint-plugin-sdk/package.json b/packages/eslint-plugin-sdk/package.json index 889345dee3b7..80d3d1ea3e80 100644 --- a/packages/eslint-plugin-sdk/package.json +++ b/packages/eslint-plugin-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/eslint-plugin-sdk", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK eslint plugin", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/eslint-plugin-sdk", diff --git a/packages/gatsby/package.json b/packages/gatsby/package.json index 3982b4dee6c2..643076004b19 100644 --- a/packages/gatsby/package.json +++ b/packages/gatsby/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/gatsby", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for Gatsby.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/gatsby", @@ -26,14 +26,14 @@ "access": "public" }, "dependencies": { - "@sentry/react": "6.11.0", - "@sentry/tracing": "6.11.0" + "@sentry/react": "6.12.0-beta.2", + "@sentry/tracing": "6.12.0-beta.2" }, "peerDependencies": { "gatsby": "^2.0.0 || ^3.0.0" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@testing-library/react": "^10.4.9", "jest": "^24.7.1", "npm-run-all": "^4.1.2", diff --git a/packages/hub/package.json b/packages/hub/package.json index df53fd514637..1830eff9ad1e 100644 --- a/packages/hub/package.json +++ b/packages/hub/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/hub", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Sentry hub which handles global state managment.", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/hub", @@ -16,12 +16,12 @@ "access": "public" }, "dependencies": { - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "jest": "^24.7.1", "npm-run-all": "^4.1.2", "prettier": "1.19.0", diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 69978f6cf42a..373614d927ee 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/integrations", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Pluggable integrations that can be used to enhance JS SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/integrations", @@ -16,13 +16,13 @@ "module": "esm/index.js", "types": "dist/index.d.ts", "dependencies": { - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "localforage": "^1.8.1", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "chai": "^4.1.2", "jest": "^24.7.1", "npm-run-all": "^4.1.2", diff --git a/packages/minimal/package.json b/packages/minimal/package.json index b31d05dbf7a0..32df55a36586 100644 --- a/packages/minimal/package.json +++ b/packages/minimal/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/minimal", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Sentry minimal library that can be used in other packages", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/minimal", @@ -16,12 +16,12 @@ "access": "public" }, "dependencies": { - "@sentry/hub": "6.11.0", - "@sentry/types": "6.11.0", + "@sentry/hub": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "jest": "^24.7.1", "npm-run-all": "^4.1.2", "prettier": "1.19.0", diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index 2d3b889d804a..ceb83256d1f1 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/nextjs", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for Next.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/nextjs", @@ -17,17 +17,17 @@ "access": "public" }, "dependencies": { - "@sentry/core": "6.11.0", - "@sentry/integrations": "6.11.0", - "@sentry/node": "6.11.0", - "@sentry/react": "6.11.0", - "@sentry/tracing": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/core": "6.12.0-beta.2", + "@sentry/integrations": "6.12.0-beta.2", + "@sentry/node": "6.12.0-beta.2", + "@sentry/react": "6.12.0-beta.2", + "@sentry/tracing": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "@sentry/webpack-plugin": "1.17.1", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry/types": "6.11.0", + "@sentry/types": "6.12.0-beta.2", "@types/webpack": "^5.28.0", "eslint": "7.20.0", "next": "10.1.3", diff --git a/packages/node/package.json b/packages/node/package.json index ae78fa42433e..d741d5810d2c 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/node", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for Node.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/node", @@ -16,18 +16,18 @@ "access": "public" }, "dependencies": { - "@sentry/core": "6.11.0", - "@sentry/hub": "6.11.0", - "@sentry/tracing": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/core": "6.12.0-beta.2", + "@sentry/hub": "6.12.0-beta.2", + "@sentry/tracing": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "cookie": "^0.4.1", "https-proxy-agent": "^5.0.0", "lru_map": "^0.3.3", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@types/cookie": "0.3.2", "@types/express": "^4.17.2", "@types/lru-cache": "^5.1.0", diff --git a/packages/react/package.json b/packages/react/package.json index 3c1dca3de811..45cb83567481 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/react", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for React.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/react", @@ -16,10 +16,10 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "6.11.0", - "@sentry/minimal": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/browser": "6.12.0-beta.2", + "@sentry/minimal": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "hoist-non-react-statics": "^3.3.2", "tslib": "^1.9.3" }, @@ -27,7 +27,7 @@ "react": "15.x || 16.x || 17.x" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@testing-library/react": "^11.2.6", "@testing-library/react-hooks": "^5.1.1", "@types/history-4": "npm:@types/history@4.7.8", diff --git a/packages/serverless/package.json b/packages/serverless/package.json index fd15f47ec8f6..674a1f8a55f2 100644 --- a/packages/serverless/package.json +++ b/packages/serverless/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/serverless", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for various serverless solutions", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/serverless", @@ -16,11 +16,11 @@ "access": "public" }, "dependencies": { - "@sentry/minimal": "6.11.0", - "@sentry/node": "6.11.0", - "@sentry/tracing": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/minimal": "6.12.0-beta.2", + "@sentry/node": "6.12.0-beta.2", + "@sentry/tracing": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "@types/aws-lambda": "^8.10.62", "@types/express": "^4.17.2", "tslib": "^1.9.3" @@ -30,7 +30,7 @@ "@google-cloud/common": "^3.4.1", "@google-cloud/functions-framework": "^1.7.1", "@google-cloud/pubsub": "^2.5.0", - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@types/node": "^14.6.4", "aws-sdk": "^2.765.0", "find-up": "^5.0.0", diff --git a/packages/tracing/package.json b/packages/tracing/package.json index c3cd97a140b5..8f9ec714850c 100644 --- a/packages/tracing/package.json +++ b/packages/tracing/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/tracing", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Extensions for Sentry AM", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/tracing", @@ -16,15 +16,15 @@ "access": "public" }, "dependencies": { - "@sentry/hub": "6.11.0", - "@sentry/minimal": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/hub": "6.12.0-beta.2", + "@sentry/minimal": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", - "@sentry/browser": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", + "@sentry/browser": "6.12.0-beta.2", "@types/express": "^4.17.1", "@types/jsdom": "^16.2.3", "jest": "^24.7.1", diff --git a/packages/tracing/src/browser/browsertracing.ts b/packages/tracing/src/browser/browsertracing.ts index c0db1e0c0e7b..803fa8934457 100644 --- a/packages/tracing/src/browser/browsertracing.ts +++ b/packages/tracing/src/browser/browsertracing.ts @@ -7,7 +7,7 @@ import { DEFAULT_IDLE_TIMEOUT, IdleTransaction } from '../idletransaction'; import { SpanStatus } from '../spanstatus'; import { extractTraceparentData, secToMs } from '../utils'; import { registerBackgroundTabDetection } from './backgroundtab'; -import { MetricsInstrumentation } from './metrics'; +import { DEFAULT_METRICS_INSTR_OPTIONS, MetricsInstrumentation, MetricsInstrumentationOptions } from './metrics'; import { defaultRequestInstrumentationOptions, instrumentOutgoingRequests, @@ -60,6 +60,15 @@ export interface BrowserTracingOptions extends RequestInstrumentationOptions { */ markBackgroundTransactions: boolean; + /** + * _metricOptions allows the user to send options to change how metrics are collected. + * + * _metricOptions is currently experimental. + * + * Default: undefined + */ + _metricOptions?: Partial; + /** * beforeNavigate is called before a pageload/navigation transaction is created and allows users to modify transaction * context data, or drop the transaction entirely (by setting `sampled = false` in the context). @@ -116,7 +125,7 @@ export class BrowserTracing implements Integration { private _getCurrentHub?: () => Hub; - private readonly _metrics: MetricsInstrumentation = new MetricsInstrumentation(); + private readonly _metrics: MetricsInstrumentation; private readonly _emitOptionsWarning: boolean = false; @@ -139,6 +148,8 @@ export class BrowserTracing implements Integration { ..._options, tracingOrigins, }; + + this._metrics = new MetricsInstrumentation({ ...DEFAULT_METRICS_INSTR_OPTIONS, ...this.options._metricOptions }); } /** diff --git a/packages/tracing/src/browser/metrics.ts b/packages/tracing/src/browser/metrics.ts index d7bfd434ba5c..9ccbc87ac547 100644 --- a/packages/tracing/src/browser/metrics.ts +++ b/packages/tracing/src/browser/metrics.ts @@ -14,6 +14,17 @@ import { NavigatorDeviceMemory, NavigatorNetworkInformation } from './web-vitals const global = getGlobalObject(); +/** + * Exports a way to add options to our metric collection. Currently experimental. + */ +export interface MetricsInstrumentationOptions { + _reportAllChanges: boolean; +} + +export const DEFAULT_METRICS_INSTR_OPTIONS: MetricsInstrumentationOptions = { + _reportAllChanges: false, +}; + /** Class tracking metrics */ export class MetricsInstrumentation { private _measurements: Measurements = {}; @@ -22,14 +33,14 @@ export class MetricsInstrumentation { private _lcpEntry: LargestContentfulPaint | undefined; private _clsEntry: LayoutShift | undefined; - public constructor() { + public constructor(_options: MetricsInstrumentationOptions) { if (!isNodeEnv() && global?.performance) { if (global.performance.mark) { global.performance.mark('sentry-tracing-init'); } this._trackCLS(); - this._trackLCP(); + this._trackLCP(_options._reportAllChanges); this._trackFID(); } } @@ -285,7 +296,7 @@ export class MetricsInstrumentation { } /** Starts tracking the Largest Contentful Paint on the current page. */ - private _trackLCP(): void { + private _trackLCP(reportAllChanges: boolean): void { getLCP(metric => { const entry = metric.entries.pop(); @@ -299,7 +310,7 @@ export class MetricsInstrumentation { this._measurements['lcp'] = { value: metric.value }; this._measurements['mark.lcp'] = { value: timeOrigin + startTime }; this._lcpEntry = entry as LargestContentfulPaint; - }); + }, reportAllChanges); } /** Starts tracking the First Input Delay on the current page. */ diff --git a/packages/tracing/test/browser/browsertracing.test.ts b/packages/tracing/test/browser/browsertracing.test.ts index 7c7d1d6306cc..bc94f7ed73bb 100644 --- a/packages/tracing/test/browser/browsertracing.test.ts +++ b/packages/tracing/test/browser/browsertracing.test.ts @@ -11,6 +11,7 @@ import { getHeaderContext, getMetaContent, } from '../../src/browser/browsertracing'; +import { DEFAULT_METRICS_INSTR_OPTIONS, MetricsInstrumentation } from '../../src/browser/metrics'; import { defaultRequestInstrumentationOptions } from '../../src/browser/request'; import { instrumentRoutingWithDefaults } from '../../src/browser/router'; import * as hubExtensions from '../../src/hubextensions'; @@ -32,6 +33,8 @@ jest.mock('@sentry/utils', () => { }; }); +jest.mock('../../src/browser/metrics'); + const { logger } = jest.requireActual('@sentry/utils'); const warnSpy = jest.spyOn(logger, 'warn'); @@ -493,4 +496,31 @@ describe('BrowserTracing', () => { ); }); }); + + describe('metrics', () => { + beforeEach(() => { + // @ts-ignore mock clear + MetricsInstrumentation.mockClear(); + }); + + it('creates metrics instrumentation', () => { + createBrowserTracing(true, {}); + + expect(MetricsInstrumentation).toHaveBeenCalledTimes(1); + expect(MetricsInstrumentation).toHaveBeenLastCalledWith(DEFAULT_METRICS_INSTR_OPTIONS); + }); + + it('creates metrics instrumentation with custom options', () => { + createBrowserTracing(true, { + _metricOptions: { + _reportAllChanges: true, + }, + }); + + expect(MetricsInstrumentation).toHaveBeenCalledTimes(1); + expect(MetricsInstrumentation).toHaveBeenLastCalledWith({ + _reportAllChanges: true, + }); + }); + }); }); diff --git a/packages/tracing/test/browser/metrics.test.ts b/packages/tracing/test/browser/metrics.test.ts index 114a9a480798..ce227c6f1fc9 100644 --- a/packages/tracing/test/browser/metrics.test.ts +++ b/packages/tracing/test/browser/metrics.test.ts @@ -1,5 +1,11 @@ import { Span, Transaction } from '../../src'; -import { _startChild, addResourceSpans, MetricsInstrumentation, ResourceEntry } from '../../src/browser/metrics'; +import { + _startChild, + addResourceSpans, + DEFAULT_METRICS_INSTR_OPTIONS, + MetricsInstrumentation, + ResourceEntry, +} from '../../src/browser/metrics'; import { addDOMPropertiesToGlobal } from '../testutils'; // eslint-disable-next-line @typescript-eslint/no-explicit-any, no-var @@ -178,7 +184,7 @@ describe('MetricsInstrumentation', () => { jest.spyOn(MetricsInstrumentation.prototype as any, tracker), ); - new MetricsInstrumentation(); + new MetricsInstrumentation(DEFAULT_METRICS_INSTR_OPTIONS); trackers.forEach(tracker => expect(tracker).not.toBeCalled()); }); @@ -191,7 +197,7 @@ describe('MetricsInstrumentation', () => { const trackers = ['_trackCLS', '_trackLCP', '_trackFID'].map(tracker => jest.spyOn(MetricsInstrumentation.prototype as any, tracker), ); - new MetricsInstrumentation(); + new MetricsInstrumentation(DEFAULT_METRICS_INSTR_OPTIONS); global.process = backup; trackers.forEach(tracker => expect(tracker).toBeCalled()); diff --git a/packages/types/package.json b/packages/types/package.json index 2629ccf7e41b..80caad2501c6 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/types", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Types for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/types", @@ -16,7 +16,7 @@ "access": "public" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "npm-run-all": "^4.1.2", "prettier": "1.19.0", "typescript": "3.7.5" diff --git a/packages/typescript/package.json b/packages/typescript/package.json index 169ddca2eabd..93dac264efb8 100644 --- a/packages/typescript/package.json +++ b/packages/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@sentry-internal/typescript", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Typescript configuration used at Sentry", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/typescript", diff --git a/packages/utils/package.json b/packages/utils/package.json index 9b5129ec6b46..cd683943e63c 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/utils", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Utilities for all Sentry JavaScript SDKs", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/utils", @@ -16,11 +16,11 @@ "access": "public" }, "dependencies": { - "@sentry/types": "6.11.0", + "@sentry/types": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "chai": "^4.1.2", "jest": "^24.7.1", "jsdom": "^16.2.2", diff --git a/packages/vue/package.json b/packages/vue/package.json index 8d8ee0395f77..07b0baf829d3 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/vue", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Official Sentry SDK for Vue.js", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/vue", @@ -16,11 +16,11 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "6.11.0", - "@sentry/core": "6.11.0", - "@sentry/minimal": "6.11.0", - "@sentry/types": "6.11.0", - "@sentry/utils": "6.11.0", + "@sentry/browser": "6.12.0-beta.2", + "@sentry/core": "6.12.0-beta.2", + "@sentry/minimal": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", + "@sentry/utils": "6.12.0-beta.2", "tslib": "^1.9.3" }, "peerDependencies": { @@ -28,7 +28,7 @@ "vue-router": "3.x || 4.x" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "jest": "^24.7.1", "jsdom": "^16.2.2", "npm-run-all": "^4.1.2", diff --git a/packages/wasm/package.json b/packages/wasm/package.json index 912e428091c6..f4e19e668933 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -1,6 +1,6 @@ { "name": "@sentry/wasm", - "version": "6.11.0", + "version": "6.12.0-beta.2", "description": "Support for WASM.", "repository": "git://github.com/getsentry/sentry-javascript.git", "homepage": "https://github.com/getsentry/sentry-javascript/tree/master/packages/wasm", @@ -16,12 +16,12 @@ "access": "public" }, "dependencies": { - "@sentry/browser": "6.11.0", - "@sentry/types": "6.11.0", + "@sentry/browser": "6.12.0-beta.2", + "@sentry/types": "6.12.0-beta.2", "tslib": "^1.9.3" }, "devDependencies": { - "@sentry-internal/eslint-config-sdk": "6.11.0", + "@sentry-internal/eslint-config-sdk": "6.12.0-beta.2", "@types/jest-environment-puppeteer": "^4.4.0", "@types/puppeteer": "^5.4.0", "cross-env": "^7.0.3",