mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
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:
parent
69c403ed7d
commit
793e3d3556
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
82
yarn.lock
82
yarn.lock
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user