Update sentry-javascript monorepo to v6.17.2 (#44364)

* Update sentry-javascript monorepo to v6.17.2

* update Sentry transport impl to be compat with latest sentry

* kick drone

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Domas <domasx2@gmail.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
This commit is contained in:
renovate[bot] 2022-01-31 16:51:09 +00:00 committed by GitHub
parent 69c403ed7d
commit 793e3d3556
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 104 additions and 89 deletions

View File

@ -257,9 +257,9 @@
"@react-stately/menu": "3.2.3",
"@react-stately/tree": "3.2.0",
"@reduxjs/toolkit": "1.7.1",
"@sentry/browser": "6.16.1",
"@sentry/types": "6.16.1",
"@sentry/utils": "6.16.1",
"@sentry/browser": "6.17.2",
"@sentry/types": "6.17.2",
"@sentry/utils": "6.17.2",
"@visx/event": "2.6.0",
"@visx/gradient": "2.1.0",
"@visx/group": "2.1.0",

View File

@ -25,7 +25,7 @@
"@grafana/data": "8.4.0-pre",
"@grafana/e2e-selectors": "8.4.0-pre",
"@grafana/ui": "8.4.0-pre",
"@sentry/browser": "6.16.1",
"@sentry/browser": "6.17.2",
"history": "4.10.1",
"lodash": "4.17.21",
"react": "17.0.2",

View File

@ -44,7 +44,7 @@
"@react-aria/menu": "3.3.0",
"@react-aria/overlays": "3.7.3",
"@react-stately/menu": "3.2.3",
"@sentry/browser": "6.16.1",
"@sentry/browser": "6.17.2",
"ansicolor": "1.1.95",
"calculate-size": "1.1.1",
"classnames": "2.3.1",

View File

@ -1,5 +1,4 @@
import { Event, Severity } from '@sentry/browser';
import { Status } from '@sentry/types';
import { CustomEndpointTransport } from './CustomEndpointTransport';
describe('CustomEndpointTransport', () => {
@ -54,7 +53,7 @@ describe('CustomEndpointTransport', () => {
expect(fetchSpy).toHaveBeenCalledTimes(1);
// second immediate call - shot circuited because retry-after time has not expired, backend not called
await expect(transport.sendEvent(event)).resolves.toHaveProperty('status', Status.Skipped);
await expect(transport.sendEvent(event)).resolves.toHaveProperty('status', 'skipped');
expect(fetchSpy).toHaveBeenCalledTimes(1);
// wait out the retry-after and call again - great success
@ -79,7 +78,7 @@ describe('CustomEndpointTransport', () => {
expect(fetchSpy).toHaveBeenCalledTimes(1);
// second immediate call - shot circuited because retry-after time has not expired, backend not called
await expect(transport.sendEvent(event)).resolves.toHaveProperty('status', Status.Skipped);
await expect(transport.sendEvent(event)).resolves.toHaveProperty('status', 'skipped');
expect(fetchSpy).toHaveBeenCalledTimes(1);
// wait out the retry-after and call again - great success

View File

@ -1,6 +1,13 @@
import { Event, Severity } from '@sentry/browser';
import { logger, parseRetryAfterHeader, PromiseBuffer, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';
import { Response, Status } from '@sentry/types';
import {
logger,
makePromiseBuffer,
parseRetryAfterHeader,
PromiseBuffer,
supportsReferrerPolicy,
SyncPromise,
} from '@sentry/utils';
import { Response } from '@sentry/types';
import { BaseTransport } from '../types';
export interface CustomEndpointTransportOptions {
@ -25,7 +32,7 @@ export class CustomEndpointTransport implements BaseTransport {
private readonly _buffer: PromiseBuffer<Response>;
constructor(public options: CustomEndpointTransportOptions) {
this._buffer = new PromiseBuffer(options.maxConcurrentRequests ?? DEFAULT_MAX_CONCURRENT_REQUESTS);
this._buffer = makePromiseBuffer(options.maxConcurrentRequests ?? DEFAULT_MAX_CONCURRENT_REQUESTS);
}
sendEvent(event: Event): PromiseLike<Response> {
@ -35,7 +42,7 @@ export class CustomEndpointTransport implements BaseTransport {
return Promise.resolve({
event,
reason,
status: Status.Skipped,
status: 'skipped',
});
}
@ -81,41 +88,42 @@ export class CustomEndpointTransport implements BaseTransport {
Object.assign(options, this.options.fetchParameters);
}
if (!this._buffer.isReady()) {
const reason = `Dropping frontend log event due to too many requests in flight.`;
console.warn(reason);
return Promise.resolve({
event,
reason,
status: Status.Skipped,
return this._buffer
.add(
() =>
new SyncPromise<Response>((resolve, reject) => {
window
.fetch(sentryReq.url, options)
.then((response) => {
if (response.status === 200) {
resolve({ status: 'success' });
return;
}
if (response.status === 429) {
const now = Date.now();
const retryAfterHeader = response.headers.get('Retry-After');
this._disabledUntil = new Date(now + parseRetryAfterHeader(now, retryAfterHeader));
logger.warn(`Too many requests, backing off till: ${this._disabledUntil}`);
}
reject(response);
})
.catch(reject);
})
)
.then(undefined, (reason) => {
if (reason.message === 'Not adding Promise due to buffer limit reached.') {
const msg = `Dropping frontend log event due to too many requests in flight.`;
console.warn(msg);
return {
event,
reason: msg,
status: 'skipped',
};
}
throw reason;
});
}
return this._buffer.add(
() =>
new SyncPromise<Response>((resolve, reject) => {
window
.fetch(sentryReq.url, options)
.then((response) => {
const status = Status.fromHttpCode(response.status);
if (status === Status.Success) {
resolve({ status });
return;
}
if (status === Status.RateLimit) {
const now = Date.now();
const retryAfterHeader = response.headers.get('Retry-After');
this._disabledUntil = new Date(now + parseRetryAfterHeader(now, retryAfterHeader));
logger.warn(`Too many requests, backing off till: ${this._disabledUntil}`);
}
reject(response);
})
.catch(reject);
})
);
}
}

View File

@ -1,7 +1,7 @@
import { getEchoSrv, EchoEventType } from '@grafana/runtime';
import { BaseTransport } from '@sentry/browser/dist/transports';
import { Event } from '@sentry/browser';
import { Status } from '@sentry/types';
import { EventStatus, Request, Session, Response } from '@sentry/types';
export class EchoSrvTransport extends BaseTransport {
sendEvent(event: Event) {
@ -9,6 +9,14 @@ export class EchoSrvTransport extends BaseTransport {
type: EchoEventType.Sentry,
payload: event,
});
return Promise.resolve({ status: Status.Success, event });
return Promise.resolve({ status: 'success' as EventStatus, event });
}
// not recording sessions for now
sendSession(session: Session): PromiseLike<Response> {
return Promise.resolve({ status: 'skipped' });
}
// required by BaseTransport definition but not used by this implementation
_sendRequest(sentryRequest: Request, originalPayload: Event | Session): PromiseLike<Response> {
throw new Error('should not happen');
}
}

View File

@ -3863,7 +3863,7 @@ __metadata:
"@grafana/ui": 8.4.0-pre
"@rollup/plugin-commonjs": 21.0.1
"@rollup/plugin-node-resolve": 13.1.3
"@sentry/browser": 6.16.1
"@sentry/browser": 6.17.2
"@testing-library/dom": ^8.11.1
"@testing-library/react": ^12.1.2
"@testing-library/user-event": ^13.5.0
@ -4060,7 +4060,7 @@ __metadata:
"@rollup/plugin-commonjs": 21.0.1
"@rollup/plugin-image": 2.1.1
"@rollup/plugin-node-resolve": 13.1.3
"@sentry/browser": 6.16.1
"@sentry/browser": 6.17.2
"@storybook/addon-a11y": 6.4.13
"@storybook/addon-actions": 6.4.13
"@storybook/addon-docs": 6.4.13
@ -7075,67 +7075,67 @@ __metadata:
languageName: node
linkType: hard
"@sentry/browser@npm:6.16.1":
version: 6.16.1
resolution: "@sentry/browser@npm:6.16.1"
"@sentry/browser@npm:6.17.2":
version: 6.17.2
resolution: "@sentry/browser@npm:6.17.2"
dependencies:
"@sentry/core": 6.16.1
"@sentry/types": 6.16.1
"@sentry/utils": 6.16.1
"@sentry/core": 6.17.2
"@sentry/types": 6.17.2
"@sentry/utils": 6.17.2
tslib: ^1.9.3
checksum: baae33f5cb008a617b50c4b719e62c64db0ac107741938061902817310c72dc1e83bda560296954510a9dbb933425316d5a56911e455104307aa8e057c7722c2
checksum: 81235d9648a8486ba76fbc2c069f4d25889b936c45367b8c3ddf36e4a4a609ac8d65d65219afd1dc1d16177fa2167ed625d88bdeb0276f8230128d195ce4bfbd
languageName: node
linkType: hard
"@sentry/core@npm:6.16.1":
version: 6.16.1
resolution: "@sentry/core@npm:6.16.1"
"@sentry/core@npm:6.17.2":
version: 6.17.2
resolution: "@sentry/core@npm:6.17.2"
dependencies:
"@sentry/hub": 6.16.1
"@sentry/minimal": 6.16.1
"@sentry/types": 6.16.1
"@sentry/utils": 6.16.1
"@sentry/hub": 6.17.2
"@sentry/minimal": 6.17.2
"@sentry/types": 6.17.2
"@sentry/utils": 6.17.2
tslib: ^1.9.3
checksum: 76f49b270d6acf1b9473822035d7a9a5c191f2df472c5768e01329afbb3f420634792f2a2826cd295982710d39b7c3d53e0c462e1d652451c0ba783c150420d8
checksum: 3d0265bacf95df766db90ce582758130cf802ea4a9cc86872519aec8e240a37d69aa0f0e72be3526a6b8d4c59bd6eb0c23518d07e4b7b3477014526e45c5e29a
languageName: node
linkType: hard
"@sentry/hub@npm:6.16.1":
version: 6.16.1
resolution: "@sentry/hub@npm:6.16.1"
"@sentry/hub@npm:6.17.2":
version: 6.17.2
resolution: "@sentry/hub@npm:6.17.2"
dependencies:
"@sentry/types": 6.16.1
"@sentry/utils": 6.16.1
"@sentry/types": 6.17.2
"@sentry/utils": 6.17.2
tslib: ^1.9.3
checksum: 032cd76e9de169ba3ee9683ab4c7603d7e5784fc9d5dc4173d7fedcecc3f9dd07c8ee1b95d250befff5943d1bdb2e9ee4d38c9976b723db959b33c10a1b2aead
checksum: 1f8e029f6e32fd3b6779103cf425bd813a1caeec91fc27f3a3675ea253a16e50a95d719fce9511d061682c81108a969f25e39eb6d59f469f4d4fd89a57d72eea
languageName: node
linkType: hard
"@sentry/minimal@npm:6.16.1":
version: 6.16.1
resolution: "@sentry/minimal@npm:6.16.1"
"@sentry/minimal@npm:6.17.2":
version: 6.17.2
resolution: "@sentry/minimal@npm:6.17.2"
dependencies:
"@sentry/hub": 6.16.1
"@sentry/types": 6.16.1
"@sentry/hub": 6.17.2
"@sentry/types": 6.17.2
tslib: ^1.9.3
checksum: c928c94ce76538b8ad81d6e724f4c149b046087a48de60e43933520f6a51ce13abbcbc94f91575aa215e662901c65204344d9185f8afc6d5b449b3bedf85db54
checksum: 4c1d63deee6387c25b3f6fd8d377777f6010f4725230566b24ef103a26daa07a359604e5d1418e8e7f47f31680506a128dab803ecec2eab3e263fad99902e92e
languageName: node
linkType: hard
"@sentry/types@npm:6.16.1":
version: 6.16.1
resolution: "@sentry/types@npm:6.16.1"
checksum: 994791c471a83b3e9a3c7052b6b2fef3ab404834eaabb61f3dd15b79782ca9cf6774cfb760040bbc06812a8420e8d40681d81a7d4b51ce7ed578d72d97c9a0b8
"@sentry/types@npm:6.17.2":
version: 6.17.2
resolution: "@sentry/types@npm:6.17.2"
checksum: 0872f84ef93547a15a9c6567a1e7ce4f79ab4649829879637aba476437c4bb025bd4b0107799620818f8c2188521d3af221b3b35663ce968e5a44dc3a3a18ccb
languageName: node
linkType: hard
"@sentry/utils@npm:6.16.1":
version: 6.16.1
resolution: "@sentry/utils@npm:6.16.1"
"@sentry/utils@npm:6.17.2":
version: 6.17.2
resolution: "@sentry/utils@npm:6.17.2"
dependencies:
"@sentry/types": 6.16.1
"@sentry/types": 6.17.2
tslib: ^1.9.3
checksum: 6a94b7a4706a28a6f0ccd4b4f9553217d17883974e3edf019f301110957ba592f0c33e653e3f0c79db735631ca87f1c03de8a60a69fd086c3a7cc1f88b7d2be2
checksum: 15d2885a7da1bb30b78b2de54a031130aab59cb511ad5766d80daffeb2a08c5769b015e2a2687d4435b27e4474f79cc9fd19c1ad6bc0aabb572bea2a388ae0fb
languageName: node
linkType: hard
@ -19816,9 +19816,9 @@ __metadata:
"@react-types/shared": 3.10.1
"@reduxjs/toolkit": 1.7.1
"@rtsao/plugin-proposal-class-properties": 7.0.1-patch.1
"@sentry/browser": 6.16.1
"@sentry/types": 6.16.1
"@sentry/utils": 6.16.1
"@sentry/browser": 6.17.2
"@sentry/types": 6.17.2
"@sentry/utils": 6.17.2
"@swc/core": 1.2.127
"@swc/helpers": 0.3.2
"@testing-library/dom": 8.11.1