@dxos/observability 0.7.5-main.9d2a38b → 0.7.5-main.e94eead
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{chunk-EE4ONYIP.mjs → chunk-RWIBODSU.mjs} +14 -14
- package/dist/lib/browser/chunk-RWIBODSU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/observability-VEOITBLM.mjs +7 -0
- package/dist/lib/browser/segment/index.mjs +2 -2
- package/dist/lib/browser/segment/index.mjs.map +3 -3
- package/dist/lib/node/{chunk-4TP5PWSE.cjs → chunk-X2D2I2IE.cjs} +17 -17
- package/dist/lib/node/chunk-X2D2I2IE.cjs.map +7 -0
- package/dist/lib/node/index.cjs +15 -15
- package/dist/lib/node/index.cjs.map +1 -1
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{observability-2HKMGFQE.cjs → observability-MM62IY7P.cjs} +6 -6
- package/dist/lib/node/{observability-2HKMGFQE.cjs.map → observability-MM62IY7P.cjs.map} +2 -2
- package/dist/lib/node/segment/index.cjs +2 -2
- package/dist/lib/node/segment/index.cjs.map +3 -3
- package/dist/lib/node-esm/{chunk-ZLCW6LTG.mjs → chunk-S7JHPCWW.mjs} +14 -14
- package/dist/lib/node-esm/chunk-S7JHPCWW.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +1 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{observability-CJZWSHQX.mjs → observability-OLS7SWZT.mjs} +2 -2
- package/dist/lib/node-esm/segment/index.mjs +2 -2
- package/dist/lib/node-esm/segment/index.mjs.map +3 -3
- package/dist/types/src/helpers/browser-observability.js +24 -65
- package/dist/types/src/helpers/browser-observability.js.map +1 -1
- package/dist/types/src/helpers/common.js +2 -6
- package/dist/types/src/helpers/common.js.map +1 -1
- package/dist/types/src/helpers/index.js +5 -21
- package/dist/types/src/helpers/index.js.map +1 -1
- package/dist/types/src/helpers/map-spaces.js +1 -5
- package/dist/types/src/helpers/map-spaces.js.map +1 -1
- package/dist/types/src/helpers/node-observability.js +25 -34
- package/dist/types/src/helpers/node-observability.js.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.js +7 -11
- package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
- package/dist/types/src/index.js +2 -18
- package/dist/types/src/index.js.map +1 -1
- package/dist/types/src/observability.js +59 -99
- package/dist/types/src/observability.js.map +1 -1
- package/dist/types/src/otel/index.js +4 -20
- package/dist/types/src/otel/index.js.map +1 -1
- package/dist/types/src/otel/logs.js +29 -33
- package/dist/types/src/otel/logs.js.map +1 -1
- package/dist/types/src/otel/metrics.js +19 -23
- package/dist/types/src/otel/metrics.js.map +1 -1
- package/dist/types/src/otel/otel.js +4 -8
- package/dist/types/src/otel/otel.js.map +1 -1
- package/dist/types/src/otel/traces-browser.js +23 -27
- package/dist/types/src/otel/traces-browser.js.map +1 -1
- package/dist/types/src/otel/traces.js +18 -22
- package/dist/types/src/otel/traces.js.map +1 -1
- package/dist/types/src/segment/browser.d.ts +2 -2
- package/dist/types/src/segment/browser.d.ts.map +1 -1
- package/dist/types/src/segment/browser.js +12 -19
- package/dist/types/src/segment/browser.js.map +1 -1
- package/dist/types/src/segment/index.js +2 -18
- package/dist/types/src/segment/index.js.map +1 -1
- package/dist/types/src/segment/node.d.ts +2 -2
- package/dist/types/src/segment/node.d.ts.map +1 -1
- package/dist/types/src/segment/node.js +17 -21
- package/dist/types/src/segment/node.js.map +1 -1
- package/dist/types/src/segment/types.d.ts +1 -1
- package/dist/types/src/segment/types.d.ts.map +1 -1
- package/dist/types/src/segment/types.js +0 -2
- package/dist/types/src/segment/types.js.map +1 -1
- package/dist/types/src/sentry/browser.js +32 -43
- package/dist/types/src/sentry/browser.js.map +1 -1
- package/dist/types/src/sentry/index.js +2 -18
- package/dist/types/src/sentry/index.js.map +1 -1
- package/dist/types/src/sentry/node.js +25 -36
- package/dist/types/src/sentry/node.js.map +1 -1
- package/dist/types/src/sentry/node.node.test.js +10 -45
- package/dist/types/src/sentry/node.node.test.js.map +1 -1
- package/dist/types/src/sentry/sentry-log-processor.js +18 -22
- package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
- package/dist/types/src/sentry/sentry.node.test.js +10 -45
- package/dist/types/src/sentry/sentry.node.test.js.map +1 -1
- package/dist/types/src/sentry/types.js +0 -2
- package/dist/types/src/sentry/types.js.map +1 -1
- package/dist/types/src/testing/index.js +1 -17
- package/dist/types/src/testing/index.js.map +1 -1
- package/dist/types/src/testing/testkit/browser.js +2 -8
- package/dist/types/src/testing/testkit/browser.js.map +1 -1
- package/dist/types/src/testing/testkit/index.js +2 -8
- package/dist/types/src/testing/testkit/index.js.map +1 -1
- package/package.json +17 -16
- package/src/helpers/common.ts +1 -1
- package/src/helpers/setup-telemetry-listeners.ts +5 -5
- package/src/observability.ts +6 -6
- package/src/segment/browser.ts +2 -2
- package/src/segment/node.ts +2 -2
- package/src/segment/types.ts +1 -1
- package/dist/lib/browser/chunk-EE4ONYIP.mjs.map +0 -7
- package/dist/lib/browser/observability-GXID2L6O.mjs +0 -7
- package/dist/lib/node/chunk-4TP5PWSE.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZLCW6LTG.mjs.map +0 -7
- /package/dist/lib/browser/{observability-GXID2L6O.mjs.map → observability-VEOITBLM.mjs.map} +0 -0
- /package/dist/lib/node-esm/{observability-CJZWSHQX.mjs.map → observability-OLS7SWZT.mjs.map} +0 -0
|
@@ -1,38 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
//
|
|
3
2
|
// Copyright 2022 DXOS.org
|
|
4
3
|
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const log_1 = require("@dxos/log");
|
|
9
|
-
const tracing_1 = require("@dxos/tracing");
|
|
4
|
+
import { init as naturalInit, setTag, addBreadcrumb as naturalAddBreadcrumb, captureException as naturalCaptureException, captureMessage as naturalCaptureMessage, sendFeedback as naturalSendFeedback, withScope as naturalWithScope, breadcrumbsIntegration, browserTracingIntegration, feedbackIntegration, httpClientIntegration, replayIntegration, metrics, startInactiveSpan, } from '@sentry/browser';
|
|
5
|
+
import { log } from '@dxos/log';
|
|
6
|
+
import { TRACE_PROCESSOR } from '@dxos/tracing';
|
|
10
7
|
// Polyfill export.
|
|
11
|
-
|
|
12
|
-
Object.defineProperty(exports, "setTag", { enumerable: true, get: function () { return browser_2.setTag; } });
|
|
13
|
-
Object.defineProperty(exports, "setTags", { enumerable: true, get: function () { return browser_2.setTags; } });
|
|
14
|
-
Object.defineProperty(exports, "setUser", { enumerable: true, get: function () { return browser_2.setUser; } });
|
|
8
|
+
export { setTag, setTags, setUser } from '@sentry/browser';
|
|
15
9
|
/**
|
|
16
10
|
* To use this SDK, call the init function as early as possible when loading the web page.
|
|
17
11
|
* To set context information or send manual events, use the provided methods.
|
|
18
12
|
*
|
|
19
13
|
* @param options {InitOptions}
|
|
20
14
|
*/
|
|
21
|
-
const init = (options) => {
|
|
15
|
+
export const init = (options) => {
|
|
22
16
|
var _a, _b;
|
|
23
17
|
try {
|
|
24
|
-
|
|
25
|
-
(
|
|
18
|
+
log('sentry init', options);
|
|
19
|
+
naturalInit({
|
|
26
20
|
enabled: (_a = options.enable) !== null && _a !== void 0 ? _a : true,
|
|
27
21
|
dsn: options.destination,
|
|
28
22
|
release: options.release,
|
|
29
23
|
environment: options.environment,
|
|
30
24
|
integrations: [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
...(options.tracing ? [
|
|
35
|
-
...(options.replay ? [
|
|
25
|
+
breadcrumbsIntegration({ console: false, fetch: false }),
|
|
26
|
+
httpClientIntegration({ failedRequestStatusCodes: [[400, 599]] }),
|
|
27
|
+
feedbackIntegration({ autoInject: false }),
|
|
28
|
+
...(options.tracing ? [browserTracingIntegration()] : []),
|
|
29
|
+
...(options.replay ? [replayIntegration({ blockAllMedia: true, maskAllText: true })] : []),
|
|
36
30
|
],
|
|
37
31
|
replaysSessionSampleRate: options.replaySampleRate,
|
|
38
32
|
replaysOnErrorSampleRate: options.replaySampleRateOnError,
|
|
@@ -44,19 +38,18 @@ const init = (options) => {
|
|
|
44
38
|
return event;
|
|
45
39
|
},
|
|
46
40
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
startSpan:
|
|
41
|
+
TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
|
|
42
|
+
TRACE_PROCESSOR.remoteTracing.registerProcessor({
|
|
43
|
+
startSpan: startInactiveSpan,
|
|
50
44
|
});
|
|
51
45
|
Object.entries((_b = options.properties) !== null && _b !== void 0 ? _b : {}).forEach(([key, value]) => {
|
|
52
|
-
|
|
46
|
+
setTag(key, value);
|
|
53
47
|
});
|
|
54
48
|
}
|
|
55
49
|
catch (err) {
|
|
56
|
-
|
|
50
|
+
log.catch('Failed to initialize sentry', err);
|
|
57
51
|
}
|
|
58
52
|
};
|
|
59
|
-
exports.init = init;
|
|
60
53
|
/**
|
|
61
54
|
* Records a new breadcrumb which will be attached to future events.
|
|
62
55
|
*
|
|
@@ -66,16 +59,15 @@ exports.init = init;
|
|
|
66
59
|
*
|
|
67
60
|
* @param breadcrumb — The breadcrumb to record.
|
|
68
61
|
*/
|
|
69
|
-
const addBreadcrumb = (breadcrumb) => {
|
|
62
|
+
export const addBreadcrumb = (breadcrumb) => {
|
|
70
63
|
try {
|
|
71
|
-
(
|
|
72
|
-
|
|
64
|
+
naturalAddBreadcrumb(breadcrumb);
|
|
65
|
+
log('add breadcrumb', breadcrumb);
|
|
73
66
|
}
|
|
74
67
|
catch (err) {
|
|
75
|
-
|
|
68
|
+
log.catch('Failed to add breadcrumb', err);
|
|
76
69
|
}
|
|
77
70
|
};
|
|
78
|
-
exports.addBreadcrumb = addBreadcrumb;
|
|
79
71
|
/**
|
|
80
72
|
* Captures an exception event and sends it to Sentry.
|
|
81
73
|
*
|
|
@@ -83,33 +75,30 @@ exports.addBreadcrumb = addBreadcrumb;
|
|
|
83
75
|
* @param captureContext — Additional scope data to apply to exception event.
|
|
84
76
|
* @returns — The generated eventId.
|
|
85
77
|
*/
|
|
86
|
-
const captureException = (exception, captureContext) => {
|
|
78
|
+
export const captureException = (exception, captureContext) => {
|
|
87
79
|
try {
|
|
88
|
-
const eventId = (
|
|
89
|
-
|
|
80
|
+
const eventId = naturalCaptureException(exception, captureContext);
|
|
81
|
+
log('capture exception', { exception, eventId, ...captureContext });
|
|
90
82
|
return eventId;
|
|
91
83
|
}
|
|
92
84
|
catch (err) {
|
|
93
|
-
|
|
85
|
+
log.catch('Failed to capture exception', err);
|
|
94
86
|
return 'unknown';
|
|
95
87
|
}
|
|
96
88
|
};
|
|
97
|
-
|
|
98
|
-
const captureMessage = (exception, captureContext) => {
|
|
89
|
+
export const captureMessage = (exception, captureContext) => {
|
|
99
90
|
try {
|
|
100
|
-
const eventId = (
|
|
101
|
-
|
|
91
|
+
const eventId = naturalCaptureMessage(exception, captureContext);
|
|
92
|
+
log('capture message', { exception, eventId, captureContext });
|
|
102
93
|
return eventId;
|
|
103
94
|
}
|
|
104
95
|
catch (err) {
|
|
105
|
-
|
|
96
|
+
log.catch('Failed to capture message', err);
|
|
106
97
|
return 'unknown';
|
|
107
98
|
}
|
|
108
99
|
};
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return (0, browser_1.sendFeedback)({ name, email, message }, { includeReplay: true });
|
|
100
|
+
export const captureUserFeedback = (name, email, message) => {
|
|
101
|
+
return naturalSendFeedback({ name, email, message }, { includeReplay: true });
|
|
112
102
|
};
|
|
113
|
-
|
|
114
|
-
exports.withScope = browser_1.withScope;
|
|
103
|
+
export const withScope = naturalWithScope;
|
|
115
104
|
//# sourceMappingURL=browser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/sentry/browser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../src/sentry/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
//
|
|
3
2
|
// Copyright 2022 DXOS.org
|
|
4
3
|
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./node"), exports);
|
|
21
|
-
__exportStar(require("./types"), exports);
|
|
4
|
+
export * from './node';
|
|
5
|
+
export * from './types';
|
|
22
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sentry/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sentry/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
//
|
|
3
2
|
// Copyright 2022 DXOS.org
|
|
4
3
|
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const log_1 = require("@dxos/log");
|
|
9
|
-
const tracing_1 = require("@dxos/tracing");
|
|
4
|
+
import { init as naturalInit, setTag, addBreadcrumb as naturalAddBreadcrumb, captureException as naturalCaptureException, captureMessage as naturalCaptureMessage, withScope as naturalWithScope, metrics, startInactiveSpan, } from '@sentry/node';
|
|
5
|
+
import { log } from '@dxos/log';
|
|
6
|
+
import { TRACE_PROCESSOR } from '@dxos/tracing';
|
|
10
7
|
// Polyfill export.
|
|
11
|
-
|
|
12
|
-
Object.defineProperty(exports, "setTag", { enumerable: true, get: function () { return node_2.setTag; } });
|
|
13
|
-
Object.defineProperty(exports, "setTags", { enumerable: true, get: function () { return node_2.setTags; } });
|
|
14
|
-
Object.defineProperty(exports, "setUser", { enumerable: true, get: function () { return node_2.setUser; } });
|
|
8
|
+
export { setTag, setTags, setUser } from '@sentry/node';
|
|
15
9
|
/**
|
|
16
10
|
* To use this SDK, call the init function as early as possible in the main entry module.
|
|
17
11
|
* To set context information or send manual events, use the provided methods.
|
|
18
12
|
*
|
|
19
13
|
* @param options {InitOptions}
|
|
20
14
|
*/
|
|
21
|
-
const init = (options) => {
|
|
15
|
+
export const init = (options) => {
|
|
22
16
|
var _a, _b, _c;
|
|
23
17
|
try {
|
|
24
|
-
(
|
|
18
|
+
naturalInit({
|
|
25
19
|
enabled: (_a = options.enable) !== null && _a !== void 0 ? _a : true,
|
|
26
20
|
dsn: options.destination,
|
|
27
21
|
serverName: options.installationId,
|
|
@@ -37,19 +31,18 @@ const init = (options) => {
|
|
|
37
31
|
return event;
|
|
38
32
|
},
|
|
39
33
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
startSpan:
|
|
34
|
+
TRACE_PROCESSOR.remoteMetrics.registerProcessor(metrics);
|
|
35
|
+
TRACE_PROCESSOR.remoteTracing.registerProcessor({
|
|
36
|
+
startSpan: startInactiveSpan,
|
|
43
37
|
});
|
|
44
38
|
Object.entries((_c = options.properties) !== null && _c !== void 0 ? _c : {}).forEach(([key, value]) => {
|
|
45
|
-
|
|
39
|
+
setTag(key, value);
|
|
46
40
|
});
|
|
47
41
|
}
|
|
48
42
|
catch (err) {
|
|
49
|
-
|
|
43
|
+
log.catch('Failed to initialize sentry', err);
|
|
50
44
|
}
|
|
51
45
|
};
|
|
52
|
-
exports.init = init;
|
|
53
46
|
const scrub = (event) => {
|
|
54
47
|
var _a, _b;
|
|
55
48
|
(_b = (_a = event.exception) === null || _a === void 0 ? void 0 : _a.values) === null || _b === void 0 ? void 0 : _b.forEach((value) => {
|
|
@@ -70,16 +63,15 @@ const scrub = (event) => {
|
|
|
70
63
|
*
|
|
71
64
|
* @param breadcrumb — The breadcrumb to record.
|
|
72
65
|
*/
|
|
73
|
-
const addBreadcrumb = (breadcrumb) => {
|
|
66
|
+
export const addBreadcrumb = (breadcrumb) => {
|
|
74
67
|
try {
|
|
75
|
-
(
|
|
76
|
-
|
|
68
|
+
naturalAddBreadcrumb(breadcrumb);
|
|
69
|
+
log('add breadcrumb', breadcrumb);
|
|
77
70
|
}
|
|
78
71
|
catch (err) {
|
|
79
|
-
|
|
72
|
+
log.catch('Failed to add breadcrumb', err);
|
|
80
73
|
}
|
|
81
74
|
};
|
|
82
|
-
exports.addBreadcrumb = addBreadcrumb;
|
|
83
75
|
/**
|
|
84
76
|
* Captures an exception event and sends it to Sentry.
|
|
85
77
|
*
|
|
@@ -87,34 +79,31 @@ exports.addBreadcrumb = addBreadcrumb;
|
|
|
87
79
|
* @param captureContext — Additional scope data to apply to exception event.
|
|
88
80
|
* @returns — The generated eventId.
|
|
89
81
|
*/
|
|
90
|
-
const captureException = (exception, captureContext) => {
|
|
82
|
+
export const captureException = (exception, captureContext) => {
|
|
91
83
|
try {
|
|
92
|
-
const eventId = (
|
|
93
|
-
|
|
84
|
+
const eventId = naturalCaptureException(exception, captureContext);
|
|
85
|
+
log('capture exception', { exception, eventId, ...captureContext });
|
|
94
86
|
return eventId;
|
|
95
87
|
}
|
|
96
88
|
catch (err) {
|
|
97
|
-
|
|
89
|
+
log.catch('Failed to capture exception', err);
|
|
98
90
|
return 'unknown';
|
|
99
91
|
}
|
|
100
92
|
};
|
|
101
|
-
|
|
102
|
-
const captureMessage = (exception, captureContext) => {
|
|
93
|
+
export const captureMessage = (exception, captureContext) => {
|
|
103
94
|
try {
|
|
104
|
-
const eventId = (
|
|
105
|
-
|
|
95
|
+
const eventId = naturalCaptureMessage(exception, captureContext);
|
|
96
|
+
log('capture message', { exception, eventId, captureContext });
|
|
106
97
|
return eventId;
|
|
107
98
|
}
|
|
108
99
|
catch (err) {
|
|
109
|
-
|
|
100
|
+
log.catch('Failed to capture message', err);
|
|
110
101
|
return 'unknown';
|
|
111
102
|
}
|
|
112
103
|
};
|
|
113
|
-
|
|
114
|
-
const captureUserFeedback = (name, email, message) => {
|
|
104
|
+
export const captureUserFeedback = (name, email, message) => {
|
|
115
105
|
const feedback = `User feedback: ${name} ${email} ${message}`;
|
|
116
106
|
throw new Error(`Capture user feedback not implemented in node. Use @sentry/browser. Message: ${feedback}`);
|
|
117
107
|
};
|
|
118
|
-
|
|
119
|
-
exports.withScope = node_1.withScope;
|
|
108
|
+
export const withScope = naturalWithScope;
|
|
120
109
|
//# sourceMappingURL=node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/sentry/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/sentry/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
//
|
|
3
2
|
// Copyright 2022 DXOS.org
|
|
4
3
|
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const vitest_1 = require("vitest");
|
|
40
|
-
const Sentry = __importStar(require("./node"));
|
|
41
|
-
const testing_1 = require("../testing");
|
|
42
|
-
const { testkit, sentryTransport } = (0, testing_1.sentryTestkit)();
|
|
4
|
+
import { beforeAll, beforeEach, describe, expect, test } from 'vitest';
|
|
5
|
+
import * as Sentry from './node';
|
|
6
|
+
import { sentryTestkit } from '../testing';
|
|
7
|
+
const { testkit, sentryTransport } = sentryTestkit();
|
|
43
8
|
// TODO(burdon): https://example.com?
|
|
44
9
|
const MOCK_DESTINATION = 'https://acacaeaccacacacabcaacdacdacadaca@sentry.io/000001';
|
|
45
|
-
|
|
46
|
-
|
|
10
|
+
describe('Node error reporting', () => {
|
|
11
|
+
beforeAll(() => {
|
|
47
12
|
Sentry.init({
|
|
48
13
|
destination: MOCK_DESTINATION,
|
|
49
14
|
release: 'test',
|
|
@@ -51,18 +16,18 @@ const MOCK_DESTINATION = 'https://acacaeaccacacacabcaacdacdacadaca@sentry.io/000
|
|
|
51
16
|
scrubFilenames: true,
|
|
52
17
|
});
|
|
53
18
|
});
|
|
54
|
-
|
|
19
|
+
beforeEach(() => {
|
|
55
20
|
testkit.reset();
|
|
56
21
|
});
|
|
57
|
-
|
|
22
|
+
test('should scrub stacktraces', async () => {
|
|
58
23
|
var _a, _b;
|
|
59
24
|
const err = new Error('error to look for');
|
|
60
25
|
Sentry.captureException(err);
|
|
61
|
-
await
|
|
26
|
+
await expect.poll(() => testkit.reports()).toHaveLength(1);
|
|
62
27
|
const report = testkit.findReport(err);
|
|
63
28
|
(_b = ((_a = report === null || report === void 0 ? void 0 : report.error) === null || _a === void 0 ? void 0 : _a.stacktrace).frames) === null || _b === void 0 ? void 0 : _b.forEach((frame) => {
|
|
64
29
|
var _a;
|
|
65
|
-
|
|
30
|
+
expect((_a = frame.filename) === null || _a === void 0 ? void 0 : _a.includes('/')).to.be.false;
|
|
66
31
|
});
|
|
67
32
|
});
|
|
68
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.node.test.js","sourceRoot":"","sources":["../../../../src/sentry/node.node.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.node.test.js","sourceRoot":"","sources":["../../../../src/sentry/node.node.test.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAGF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEvE,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,aAAa,EAAE,CAAC;AAErD,qCAAqC;AACrC,MAAM,gBAAgB,GAAG,2DAA2D,CAAC;AAErF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,IAAI,CAAC;YACV,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,eAAe;YAC1B,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;;QAC1C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvC,MAAA,CAAC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,UAAyB,CAAA,CAAC,MAAM,0CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;YAClE,MAAM,CAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
//
|
|
3
2
|
// Copyright 2024 DXOS.org
|
|
4
3
|
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const util_1 = require("@dxos/util");
|
|
10
|
-
const node_1 = require("./node");
|
|
4
|
+
import { InvariantViolation } from '@dxos/invariant';
|
|
5
|
+
import { LogLevel, shouldLog } from '@dxos/log';
|
|
6
|
+
import { CircularBuffer, getDebugName } from '@dxos/util';
|
|
7
|
+
import { withScope, captureException, captureMessage } from './node';
|
|
11
8
|
const MAX_LOG_BREADCRUMBS = 150;
|
|
12
|
-
class SentryLogProcessor {
|
|
9
|
+
export class SentryLogProcessor {
|
|
13
10
|
constructor() {
|
|
14
|
-
this._breadcrumbs = new
|
|
11
|
+
this._breadcrumbs = new CircularBuffer(MAX_LOG_BREADCRUMBS);
|
|
15
12
|
this.logProcessor = (config, entry) => {
|
|
16
13
|
var _a;
|
|
17
14
|
const { level, meta, error } = entry;
|
|
18
15
|
// Don't forward logs from remote sessions.
|
|
19
|
-
if (!
|
|
20
|
-
if (entry.level >
|
|
16
|
+
if (!shouldLog(entry, config.captureFilters) || ((_a = meta === null || meta === void 0 ? void 0 : meta.S) === null || _a === void 0 ? void 0 : _a.remoteSessionId)) {
|
|
17
|
+
if (entry.level > LogLevel.DEBUG) {
|
|
21
18
|
this._addBreadcrumb(undefined, entry.message, convertLevel(entry.level), undefined);
|
|
22
19
|
}
|
|
23
20
|
return;
|
|
24
21
|
}
|
|
25
|
-
if (entry.level !==
|
|
22
|
+
if (entry.level !== LogLevel.WARN && entry.level !== LogLevel.ERROR) {
|
|
26
23
|
return;
|
|
27
24
|
}
|
|
28
25
|
// TODO(nf): add rate limiting to avoid spamming Sentry/consuming excessive quota.
|
|
29
|
-
|
|
26
|
+
withScope((scope) => {
|
|
30
27
|
var _a, _b, _c, _d, _e, _f;
|
|
31
28
|
const severity = convertLevel(level);
|
|
32
29
|
scope.setLevel(severity);
|
|
@@ -45,23 +42,23 @@ class SentryLogProcessor {
|
|
|
45
42
|
}
|
|
46
43
|
const extendedMessage = formatMessageForSentry(entry);
|
|
47
44
|
let capturedError = error;
|
|
48
|
-
if (capturedError == null && entry.level ===
|
|
45
|
+
if (capturedError == null && entry.level === LogLevel.ERROR) {
|
|
49
46
|
capturedError = Object.values((_f = entry.context) !== null && _f !== void 0 ? _f : {}).find((v) => v instanceof Error);
|
|
50
47
|
}
|
|
51
48
|
if (capturedError) {
|
|
52
|
-
if (capturedError instanceof
|
|
49
|
+
if (capturedError instanceof InvariantViolation) {
|
|
53
50
|
scope.setExtra('invariant_violation', true);
|
|
54
51
|
}
|
|
55
52
|
const isMessageDifferentFromStackTrace = error == null;
|
|
56
53
|
if (isMessageDifferentFromStackTrace) {
|
|
57
54
|
scope.setExtra('message', extendedMessage);
|
|
58
55
|
}
|
|
59
|
-
const eventId =
|
|
56
|
+
const eventId = captureException(capturedError);
|
|
60
57
|
this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
|
|
61
58
|
return;
|
|
62
59
|
}
|
|
63
60
|
scope.setFingerprint([entry.message]);
|
|
64
|
-
const eventId =
|
|
61
|
+
const eventId = captureMessage(extendedMessage);
|
|
65
62
|
this._addBreadcrumb(eventId, extendedMessage, severity, entry.context);
|
|
66
63
|
});
|
|
67
64
|
};
|
|
@@ -106,13 +103,12 @@ class SentryLogProcessor {
|
|
|
106
103
|
this._breadcrumbs.push(breadcrumb);
|
|
107
104
|
}
|
|
108
105
|
}
|
|
109
|
-
exports.SentryLogProcessor = SentryLogProcessor;
|
|
110
106
|
const formatMessageForSentry = (entry) => {
|
|
111
107
|
var _a, _b, _c, _d;
|
|
112
108
|
let scopePrefix;
|
|
113
109
|
if ((_a = entry.meta) === null || _a === void 0 ? void 0 : _a.S) {
|
|
114
110
|
const scope = (_b = entry.meta) === null || _b === void 0 ? void 0 : _b.S;
|
|
115
|
-
scopePrefix = scope.name ||
|
|
111
|
+
scopePrefix = scope.name || getDebugName(scope);
|
|
116
112
|
}
|
|
117
113
|
if (scopePrefix == null) {
|
|
118
114
|
return entry.message;
|
|
@@ -121,13 +117,13 @@ const formatMessageForSentry = (entry) => {
|
|
|
121
117
|
return `${workerPrefix}${scopePrefix} ${entry.message}`;
|
|
122
118
|
};
|
|
123
119
|
const convertLevel = (level) => {
|
|
124
|
-
if (level ===
|
|
120
|
+
if (level === LogLevel.TRACE) {
|
|
125
121
|
return 'debug';
|
|
126
122
|
}
|
|
127
|
-
if (level ===
|
|
123
|
+
if (level === LogLevel.WARN) {
|
|
128
124
|
return 'warning';
|
|
129
125
|
}
|
|
130
|
-
return
|
|
126
|
+
return LogLevel[level].toLowerCase();
|
|
131
127
|
};
|
|
132
128
|
const getRelativeFilename = (filename) => {
|
|
133
129
|
// TODO(burdon): Hack uses "packages" as an anchor (pre-parse NX?)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentry-log-processor.js","sourceRoot":"","sources":["../../../../src/sentry/sentry-log-processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sentry-log-processor.js","sourceRoot":"","sources":["../../../../src/sentry/sentry-log-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +1,28 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
//
|
|
3
2
|
// Copyright 2022 DXOS.org
|
|
4
3
|
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
-
}) : function(o, v) {
|
|
19
|
-
o["default"] = v;
|
|
20
|
-
});
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const vitest_1 = require("vitest");
|
|
40
|
-
const Sentry = __importStar(require("./node"));
|
|
41
|
-
const testing_1 = require("../testing");
|
|
42
|
-
const { testkit, sentryTransport } = (0, testing_1.sentryTestkit)();
|
|
4
|
+
import { beforeAll, beforeEach, describe, expect, test } from 'vitest';
|
|
5
|
+
import * as Sentry from './node';
|
|
6
|
+
import { sentryTestkit } from '../testing';
|
|
7
|
+
const { testkit, sentryTransport } = sentryTestkit();
|
|
43
8
|
const MOCK_DESTINATION = 'https://acacaeaccacacacabcaacdacdacadaca@sentry.io/000001';
|
|
44
|
-
|
|
45
|
-
|
|
9
|
+
describe('Error reporting', () => {
|
|
10
|
+
beforeAll(() => {
|
|
46
11
|
Sentry.init({
|
|
47
12
|
destination: MOCK_DESTINATION,
|
|
48
13
|
release: 'test',
|
|
49
14
|
transport: sentryTransport,
|
|
50
15
|
});
|
|
51
16
|
});
|
|
52
|
-
|
|
17
|
+
beforeEach(() => {
|
|
53
18
|
testkit.reset();
|
|
54
19
|
});
|
|
55
|
-
|
|
20
|
+
test('should capture errors', async () => {
|
|
56
21
|
const err = new Error('error to look for');
|
|
57
22
|
Sentry.captureException(err);
|
|
58
|
-
await
|
|
23
|
+
await expect.poll(() => testkit.reports()).toHaveLength(1);
|
|
59
24
|
const report = testkit.findReport(err);
|
|
60
|
-
|
|
25
|
+
expect(report).to.exist;
|
|
61
26
|
});
|
|
62
27
|
});
|
|
63
28
|
//# sourceMappingURL=sentry.node.test.js.map
|