@nativescript-community/sentry 4.6.22 → 4.6.25
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/breadcrumb.d.ts +1 -1
- package/breadcrumb.js.map +1 -1
- package/client.d.ts +23 -23
- package/client.js +53 -40
- package/client.js.map +1 -1
- package/index.d.ts +7 -7
- package/index.js +6 -6
- package/index.js.map +1 -1
- package/integrations/debugsymbolicator.d.ts +4 -4
- package/integrations/debugsymbolicator.js +13 -11
- package/integrations/debugsymbolicator.js.map +1 -1
- package/integrations/default.js +2 -5
- package/integrations/default.js.map +1 -1
- package/integrations/devicecontext.js +11 -11
- package/integrations/devicecontext.js.map +1 -1
- package/integrations/eventorigin.js +1 -2
- package/integrations/eventorigin.js.map +1 -1
- package/integrations/factory.js.map +1 -1
- package/integrations/index.js.map +1 -1
- package/integrations/nativescripterrorhandlers.d.ts +8 -8
- package/integrations/nativescripterrorhandlers.js +7 -3
- package/integrations/nativescripterrorhandlers.js.map +1 -1
- package/integrations/release.js +5 -6
- package/integrations/release.js.map +1 -1
- package/integrations/rewriteframe.js.map +1 -1
- package/integrations/screenshot.d.ts +8 -8
- package/integrations/screenshot.js +10 -13
- package/integrations/screenshot.js.map +1 -1
- package/integrations/sdkinfo.d.ts +7 -7
- package/integrations/sdkinfo.js +15 -16
- package/integrations/sdkinfo.js.map +1 -1
- package/measurements.js.map +1 -1
- package/misc.d.ts +4 -4
- package/misc.js +5 -8
- package/misc.js.map +1 -1
- package/options.d.ts +66 -62
- package/options.js.map +1 -1
- package/package.json +2 -2
- package/platforms/android/buildscript.gradle +1 -1
- package/platforms/android/include.gradle +1 -1
- package/platforms/android/native-api-usage.json +6 -0
- package/process.js.map +1 -1
- package/references.d.ts +6 -0
- package/scope.js.map +1 -1
- package/sdk.d.ts +3 -3
- package/sdk.js +25 -18
- package/sdk.js.map +1 -1
- package/tracing/addTracingExtensions.d.ts +1 -1
- package/tracing/addTracingExtensions.js +6 -4
- package/tracing/addTracingExtensions.js.map +1 -1
- package/tracing/index.js.map +1 -1
- package/tracing/nativeframes.d.ts +22 -22
- package/tracing/nativeframes.js +30 -34
- package/tracing/nativeframes.js.map +1 -1
- package/tracing/nstracing.d.ts +67 -67
- package/tracing/nstracing.js +96 -92
- package/tracing/nstracing.js.map +1 -1
- package/tracing/ops.js.map +1 -1
- package/tracing/routingInstrumentation.d.ts +2 -2
- package/tracing/routingInstrumentation.js +3 -5
- package/tracing/routingInstrumentation.js.map +1 -1
- package/tracing/stalltracking.js +16 -9
- package/tracing/stalltracking.js.map +1 -1
- package/tracing/transaction.js.map +1 -1
- package/tracing/types.d.ts +1 -1
- package/tracing/types.js.map +1 -1
- package/tracing/utils.js.map +1 -1
- package/transports/TextEncoder.js.map +1 -1
- package/transports/native.d.ts +1 -1
- package/transports/native.js.map +1 -1
- package/typings/android.d.ts +10738 -0
- package/typings/ios.d.ts +2255 -0
- package/typings/ns.ios.d.ts +25 -0
- package/utils/envelope.js +9 -4
- package/utils/envelope.js.map +1 -1
- package/utils/environment.js.map +1 -1
- package/utils/outcome.js.map +1 -1
- package/utils/safe.d.ts +1 -1
- package/utils/safe.js.map +1 -1
- package/vendor/buffer/index.js.map +1 -1
- package/vendor/buffer/utf8ToBytes.js.map +1 -1
- package/vendor/index.js.map +1 -1
- package/version.js.map +1 -1
- package/wrapper.android.d.ts +5 -2
- package/wrapper.android.js +121 -78
- package/wrapper.android.js.map +1 -1
- package/wrapper.d.ts +2 -4
- package/wrapper.ios.d.ts +3 -3
- package/wrapper.ios.js +90 -64
- package/wrapper.ios.js.map +1 -1
@@ -1,13 +1,16 @@
|
|
1
1
|
{
|
2
2
|
"uses": [
|
3
|
+
"androidx.core.app:FrameMetricsAggregator",
|
3
4
|
"io.sentry.android.core.internal.util:ScreenshotUtils",
|
4
5
|
"io.sentry.android.core:AndroidLogger",
|
5
6
|
"io.sentry.android.core:AnrIntegration",
|
6
7
|
"io.sentry.android.core:AppStartState",
|
7
8
|
"io.sentry.android.core:BuildInfoProvider",
|
9
|
+
"io.sentry.android.core:InternalSentrySdk",
|
8
10
|
"io.sentry.android.core:CurrentActivityHolder",
|
9
11
|
"io.sentry.android.core:NdkIntegration",
|
10
12
|
"io.sentry.android.core:SentryAndroid",
|
13
|
+
"io.sentry.android.core:SentryAndroidOptions",
|
11
14
|
"io.sentry.exception:ExceptionMechanismException",
|
12
15
|
"io.sentry.protocol:Message",
|
13
16
|
"io.sentry.protocol:SdkVersion",
|
@@ -21,8 +24,10 @@
|
|
21
24
|
"io.sentry.transport:ITransportGate",
|
22
25
|
"io.sentry.transport:RateLimiter",
|
23
26
|
"io.sentry:Breadcrumb",
|
27
|
+
"io.sentry:HubAdapter",
|
24
28
|
"io.sentry:Integration",
|
25
29
|
"io.sentry:ILogger",
|
30
|
+
"io.sentry:IScope",
|
26
31
|
"io.sentry:ITransportFactory",
|
27
32
|
"io.sentry:RequestDetails",
|
28
33
|
"io.sentry:ScopeCallback",
|
@@ -43,6 +48,7 @@
|
|
43
48
|
"java.lang:Thread",
|
44
49
|
"java.nio.charset:Charset",
|
45
50
|
"java.nio:CharBuffer",
|
51
|
+
"java.util:Collection",
|
46
52
|
"java.util:Map",
|
47
53
|
"java.util:UUID"
|
48
54
|
]
|
package/process.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/sentry/process.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO;CAAG;AAChB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;AAElD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,IAAI,OAAO,EAAS,CAAC"}
|
package/references.d.ts
ADDED
package/scope.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scope.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/sentry/scope.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,MAAM,OAAO,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;;AAEnD,uBAAuB;AACvB,4DAA4D;AAC5D,+CAA+C;AAC/C,8BAA8B;AAC9B,qDAAqD;AACrD,SAAS;AACT,MAAM;AAEN,iDAAiD;AACjD,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,gDAAgD;AAChD,gCAAgC;AAChC,sCAAsC;AACtC,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,wDAAwD;AACxD,qCAAqC;AACrC,2CAA2C;AAC3C,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,8DAA8D;AAC9D,uEAAuE;AACvE,+CAA+C;AAC/C,6CAA6C;AAC7C,cAAc;AACd,sCAAsC;AACtC,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,qEAAqE;AACrE,+DAA+D;AAC/D,iDAAiD;AACjD,iDAAiD;AACjD,cAAc;AACd,0CAA0C;AAC1C,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,uHAAuH;AACvH,uDAAuD;AACvD,uCAAuC;AACvC,6CAA6C;AAC7C,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,oFAAoF;AACpF,4CAA4C;AAC5C,kEAAkE;AAClE,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,wCAAwC;AACxC,qCAAqC;AACrC,2CAA2C;AAC3C,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,qEAAqE;AACrE,qFAAqF;AACrF,2CAA2C;AAC3C,uBAAuB;AACvB,oDAAoD;AACpD,QAAQ;AAER,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,2DAA2D;AAC3D,yDAAyD;AACzD,4CAA4C;AAC5C,kDAAkD;AAClD,QAAQ;AAER,UAAU;AACV,kBAAkB;AAClB,OAAO;AACP,wCAAwC;AACxC,2CAA2C;AAC3C,QAAQ;AACR,IAAI"}
|
package/sdk.d.ts
CHANGED
@@ -47,7 +47,7 @@ export declare function captureUserFeedback(feedback: UserFeedback): void;
|
|
47
47
|
*/
|
48
48
|
export declare function withScope(callback: (scope: Scope) => void): ReturnType<Hub['withScope']>;
|
49
49
|
/**
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
* Callback to set context information onto the scope.
|
51
|
+
* @param callback Callback function that receives Scope.
|
52
|
+
*/
|
53
53
|
export declare function configureScope(callback: (scope: Scope) => void): ReturnType<Hub['configureScope']>;
|
package/sdk.js
CHANGED
@@ -56,7 +56,7 @@ const DEFAULT_OPTIONS = {
|
|
56
56
|
enableOutOfMemoryTracking: true,
|
57
57
|
patchGlobalPromise: true,
|
58
58
|
transportOptions: {
|
59
|
-
textEncoder: makeUtf8TextEncoder()
|
59
|
+
textEncoder: makeUtf8TextEncoder()
|
60
60
|
},
|
61
61
|
sendClientReports: true,
|
62
62
|
maxQueueSize: DEFAULT_BUFFER_SIZE,
|
@@ -66,16 +66,27 @@ const DEFAULT_OPTIONS = {
|
|
66
66
|
* Inits the SDK
|
67
67
|
*/
|
68
68
|
export function init(passedOptions) {
|
69
|
-
var _a, _b, _c, _d;
|
70
69
|
const NativescriptHub = new Hub(undefined, new Scope());
|
71
70
|
// const NativescriptHub = new Hub(undefined, new NativescriptScope());
|
72
71
|
makeMain(NativescriptHub);
|
73
|
-
const maxQueueSize =
|
74
|
-
const options =
|
72
|
+
const maxQueueSize = passedOptions.maxQueueSize ?? passedOptions.transportOptions?.bufferSize ?? DEFAULT_OPTIONS.maxQueueSize;
|
73
|
+
const options = {
|
74
|
+
...DEFAULT_OPTIONS,
|
75
|
+
...passedOptions,
|
75
76
|
// If custom transport factory fails the SDK won't initialize
|
76
|
-
transport: passedOptions.transport || makeNativescriptTransport,
|
77
|
+
transport: passedOptions.transport || makeNativescriptTransport,
|
78
|
+
transportOptions: {
|
79
|
+
...DEFAULT_OPTIONS.transportOptions,
|
80
|
+
...(passedOptions.transportOptions ?? {}),
|
81
|
+
bufferSize: maxQueueSize
|
82
|
+
},
|
83
|
+
maxQueueSize,
|
84
|
+
integrations: [],
|
77
85
|
// integrations: getIntegrationsToSetup(passedOptions),
|
78
|
-
stackParser: stackParserFromStackParserOptions(passedOptions.stackParser || defaultStackParser),
|
86
|
+
stackParser: stackParserFromStackParserOptions(passedOptions.stackParser || defaultStackParser),
|
87
|
+
beforeBreadcrumb: safeFactory(passedOptions.beforeBreadcrumb, { loggerMessage: 'The beforeBreadcrumb threw an error' }),
|
88
|
+
initialScope: safeFactory(passedOptions.initialScope, { loggerMessage: 'The initialScope threw an error' })
|
89
|
+
};
|
79
90
|
if ('tracesSampler' in options) {
|
80
91
|
options.tracesSampler = safeTracesSampler(options.tracesSampler);
|
81
92
|
}
|
@@ -83,12 +94,9 @@ export function init(passedOptions) {
|
|
83
94
|
options.environment = getDefaultEnvironment();
|
84
95
|
}
|
85
96
|
// As long as tracing is opt in with either one of these options, then this is how we determine tracing is enabled.
|
86
|
-
const tracingEnabled = typeof options.tracesSampler !== 'undefined' ||
|
87
|
-
typeof options.tracesSampleRate !== 'undefined';
|
97
|
+
const tracingEnabled = typeof options.tracesSampler !== 'undefined' || typeof options.tracesSampleRate !== 'undefined';
|
88
98
|
const DEFAULT_INTEGRATIONS = getDefaultIntegrations(options);
|
89
|
-
const defaultIntegrations = passedOptions.defaultIntegrations === undefined
|
90
|
-
? DEFAULT_INTEGRATIONS
|
91
|
-
: passedOptions.defaultIntegrations;
|
99
|
+
const defaultIntegrations = passedOptions.defaultIntegrations === undefined ? DEFAULT_INTEGRATIONS : passedOptions.defaultIntegrations;
|
92
100
|
// if (passedOptions.defaultIntegrations === undefined) {
|
93
101
|
// rewriteFrameIntegration = new RewriteFrames({
|
94
102
|
// iteratee: (frame: StackFrame) => {
|
@@ -143,7 +151,7 @@ export function init(passedOptions) {
|
|
143
151
|
// }
|
144
152
|
options.integrations = getIntegrationsToSetup({
|
145
153
|
integrations: safeFactory(passedOptions.integrations, { loggerMessage: 'The integrations threw an error' }),
|
146
|
-
defaultIntegrations
|
154
|
+
defaultIntegrations
|
147
155
|
});
|
148
156
|
initAndBind(NativescriptClient, options);
|
149
157
|
}
|
@@ -205,8 +213,7 @@ export async function close() {
|
|
205
213
|
* Captures user feedback and sends it to Sentry.
|
206
214
|
*/
|
207
215
|
export function captureUserFeedback(feedback) {
|
208
|
-
|
209
|
-
(_a = getCurrentHub().getClient()) === null || _a === void 0 ? void 0 : _a.captureUserFeedback(feedback);
|
216
|
+
getCurrentHub().getClient()?.captureUserFeedback(feedback);
|
210
217
|
}
|
211
218
|
/**
|
212
219
|
* Creates a new scope with and executes the given operation within.
|
@@ -224,7 +231,7 @@ export function captureUserFeedback(feedback) {
|
|
224
231
|
export function withScope(callback) {
|
225
232
|
const safeCallback = (scope) => {
|
226
233
|
try {
|
227
|
-
NATIVE.withScope(nscope => {
|
234
|
+
NATIVE.withScope((nscope) => {
|
228
235
|
callback(scope);
|
229
236
|
});
|
230
237
|
}
|
@@ -235,9 +242,9 @@ export function withScope(callback) {
|
|
235
242
|
return getCurrentHub().withScope(safeCallback);
|
236
243
|
}
|
237
244
|
/**
|
238
|
-
|
239
|
-
|
240
|
-
|
245
|
+
* Callback to set context information onto the scope.
|
246
|
+
* @param callback Callback function that receives Scope.
|
247
|
+
*/
|
241
248
|
export function configureScope(callback) {
|
242
249
|
const safeCallback = (scope) => {
|
243
250
|
try {
|
package/sdk.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sentry/sdk.ts"],"names":[],"mappings":"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"}
|
@@ -4,4 +4,4 @@ import type { CustomSamplingContext, TransactionContext } from '@sentry/types';
|
|
4
4
|
* Adds React Native's extensions. Needs to be called before any transactions are created.
|
5
5
|
*/
|
6
6
|
export declare function _addTracingExtensions(): void;
|
7
|
-
export
|
7
|
+
export type StartTransactionFunction = (this: Hub, transactionContext: TransactionContext, customSamplingContext?: CustomSamplingContext) => Transaction;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// eslint-disable-next-line no-duplicate-imports
|
2
2
|
import { addTracingExtensions, getCurrentHub, getMainCarrier } from '@sentry/core';
|
3
|
-
import { NativescriptTracing } from '
|
4
|
-
import { DEFAULT } from '
|
3
|
+
import { NativescriptTracing } from './nstracing';
|
4
|
+
import { DEFAULT } from './ops';
|
5
5
|
/**
|
6
6
|
* Adds React Native's extensions. Needs to be called before any transactions are created.
|
7
7
|
*/
|
@@ -35,9 +35,11 @@ const _patchStartTransaction = (originalStartTransaction) => {
|
|
35
35
|
}
|
36
36
|
const transaction = originalStartTransaction.apply(this, [transactionContext, customSamplingContext]);
|
37
37
|
const originalStartChild = transaction.startChild.bind(transaction);
|
38
|
-
transaction.startChild = (spanContext) => originalStartChild(
|
38
|
+
transaction.startChild = (spanContext) => originalStartChild({
|
39
|
+
...spanContext,
|
39
40
|
// Native SDKs require op to be set
|
40
|
-
op:
|
41
|
+
op: spanContext?.op || DEFAULT,
|
42
|
+
});
|
41
43
|
const reactNativeTracing = getCurrentHub().getIntegration(NativescriptTracing);
|
42
44
|
if (reactNativeTracing) {
|
43
45
|
reactNativeTracing.onTransactionStart(transaction);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"addTracingExtensions.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"addTracingExtensions.js","sourceRoot":"","sources":["../../../src/sentry/tracing/addTracingExtensions.ts"],"names":[],"mappings":"AACA,gDAAgD;AAChD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACjC,oBAAoB,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,OAAO,CAAC,UAAU,EAAE;QACpB,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;QACpE,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAChD,MAAM,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAA4C,CAAC;YAE5G;;;QAGJ;YACI,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,wBAAwB,CAAC,CAAC;YAE3E,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;SACtE;KACJ;AACL,CAAC;AAQD;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,wBAAkD,EAA4B,EAAE;IAC5G;;KAEC;IACD,SAAS,iBAAiB,CAEtB,kBAAsC,EACtC,qBAA6C;QAEjD,iEAAiE;QAC7D,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE;YACxB,kBAAkB,CAAC,EAAE,GAAG,OAAO,CAAC;SACnC;QAED,MAAM,WAAW,GAAgB,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnH,MAAM,kBAAkB,GAA8B,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/F,WAAW,CAAC,UAAU,GAAG,CACrB,WAAmG,EAC/F,EAAE,CAAC,kBAAkB,CAAC;YAC1B,GAAG,WAAW;YACd,mCAAmC;YACnC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,OAAO;SACjC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,aAAa,EAAE,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAE/E,IAAI,kBAAkB,EAAE;YACpB,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAEnD,6DAA6D;YAC7D,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC;YAE1C,WAAW,CAAC,MAAM,GAAG,CAAC,YAAgC,EAAE,EAAE;gBACtD,IAAI,kBAAkB,EAAE;oBACpB,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;iBACvD;gBAED,OAAO,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC;SACL;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC"}
|
package/tracing/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sentry/tracing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EACH,sBAAsB,GAEzB,MAAM,0BAA0B,CAAC;AAElC,WAAW;AACX,sCAAsC;AACtC,0DAA0D;AAC1D,wCAAwC;AACxC,8BAA8B;AAC9B,0EAA0E;AAC1E,mFAAmF;AAEnF,WAAW;AACX,mCAAmC;AACnC,4BAA4B;AAC5B,yCAAyC;AACzC,oBAAoB;AAEpB,gEAAgE"}
|
@@ -6,15 +6,15 @@ export interface NativeFramesResponse {
|
|
6
6
|
frozenFrames: number;
|
7
7
|
}
|
8
8
|
export interface FramesMeasurements extends Measurements {
|
9
|
-
|
9
|
+
frames_total: {
|
10
10
|
value: number;
|
11
11
|
unit: MeasurementUnit;
|
12
12
|
};
|
13
|
-
|
13
|
+
frames_slow: {
|
14
14
|
value: number;
|
15
15
|
unit: MeasurementUnit;
|
16
16
|
};
|
17
|
-
|
17
|
+
frames_frozen: {
|
18
18
|
value: number;
|
19
19
|
unit: MeasurementUnit;
|
20
20
|
};
|
@@ -31,38 +31,38 @@ export declare class NativeFramesInstrumentation {
|
|
31
31
|
private _lastSpanFinishFrames?;
|
32
32
|
constructor(addGlobalEventProcessor: (e: EventProcessor) => void, doesExist: () => boolean);
|
33
33
|
/**
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
* To be called when a transaction is started.
|
35
|
+
* Logs the native frames at this start point and instruments child span finishes.
|
36
|
+
*/
|
37
37
|
onTransactionStart(transaction: Transaction): void;
|
38
38
|
/**
|
39
|
-
|
40
|
-
|
39
|
+
* To be called when a transaction is finished
|
40
|
+
*/
|
41
41
|
onTransactionFinish(transaction: Transaction): void;
|
42
42
|
/**
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
* Called on a span finish to fetch native frames to support transactions with trimEnd.
|
44
|
+
* Only to be called when a span does not have an end timestamp.
|
45
|
+
*/
|
46
46
|
private _onSpanFinish;
|
47
47
|
/**
|
48
|
-
|
49
|
-
|
48
|
+
* Returns the computed frames measurements and awaits for them if they are not ready yet.
|
49
|
+
*/
|
50
50
|
private _getFramesMeasurements;
|
51
51
|
/**
|
52
|
-
|
53
|
-
|
52
|
+
* Returns the computed frames measurements given ready data
|
53
|
+
*/
|
54
54
|
private _prepareMeasurements;
|
55
55
|
/**
|
56
|
-
|
57
|
-
|
56
|
+
* Fetch finish frames for a transaction at the current time. Calls any awaiting listeners.
|
57
|
+
*/
|
58
58
|
private _fetchFramesForTransaction;
|
59
59
|
/**
|
60
|
-
|
61
|
-
|
60
|
+
* On a finish frames failure, we cancel the await.
|
61
|
+
*/
|
62
62
|
private _cancelFinishFrames;
|
63
63
|
/**
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
* Adds frames measurements to an event. Called from a valid event processor.
|
65
|
+
* Awaits for finish frames if needed.
|
66
|
+
*/
|
67
67
|
private _processEvent;
|
68
68
|
}
|
package/tracing/nativeframes.js
CHANGED
@@ -19,9 +19,9 @@ export class NativeFramesInstrumentation {
|
|
19
19
|
addGlobalEventProcessor((event) => this._processEvent(event, doesExist));
|
20
20
|
}
|
21
21
|
/**
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
* To be called when a transaction is started.
|
23
|
+
* Logs the native frames at this start point and instruments child span finishes.
|
24
|
+
*/
|
25
25
|
onTransactionStart(transaction) {
|
26
26
|
void NATIVE.fetchNativeFrames().then((framesMetrics) => {
|
27
27
|
if (framesMetrics) {
|
@@ -35,29 +35,29 @@ export class NativeFramesInstrumentation {
|
|
35
35
|
});
|
36
36
|
}
|
37
37
|
/**
|
38
|
-
|
39
|
-
|
38
|
+
* To be called when a transaction is finished
|
39
|
+
*/
|
40
40
|
onTransactionFinish(transaction) {
|
41
41
|
void this._fetchFramesForTransaction(transaction);
|
42
42
|
}
|
43
43
|
/**
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
* Called on a span finish to fetch native frames to support transactions with trimEnd.
|
45
|
+
* Only to be called when a span does not have an end timestamp.
|
46
|
+
*/
|
47
47
|
_onSpanFinish() {
|
48
48
|
const timestamp = timestampInSeconds();
|
49
49
|
void NATIVE.fetchNativeFrames().then((nativeFrames) => {
|
50
50
|
if (nativeFrames) {
|
51
51
|
this._lastSpanFinishFrames = {
|
52
52
|
timestamp,
|
53
|
-
nativeFrames
|
53
|
+
nativeFrames
|
54
54
|
};
|
55
55
|
}
|
56
56
|
});
|
57
57
|
}
|
58
58
|
/**
|
59
|
-
|
60
|
-
|
59
|
+
* Returns the computed frames measurements and awaits for them if they are not ready yet.
|
60
|
+
*/
|
61
61
|
async _getFramesMeasurements(traceId, finalEndTimestamp, startFrames) {
|
62
62
|
if (this._finishFrames.has(traceId)) {
|
63
63
|
return this._prepareMeasurements(traceId, finalEndTimestamp, startFrames);
|
@@ -75,8 +75,8 @@ export class NativeFramesInstrumentation {
|
|
75
75
|
});
|
76
76
|
}
|
77
77
|
/**
|
78
|
-
|
79
|
-
|
78
|
+
* Returns the computed frames measurements given ready data
|
79
|
+
*/
|
80
80
|
_prepareMeasurements(traceId, finalEndTimestamp, // The actual transaction finish time.
|
81
81
|
startFrames) {
|
82
82
|
let finalFinishFrames;
|
@@ -87,9 +87,7 @@ export class NativeFramesInstrumentation {
|
|
87
87
|
Math.abs(finish.timestamp - finalEndTimestamp) < MARGIN_OF_ERROR_SECONDS) {
|
88
88
|
finalFinishFrames = finish.nativeFrames;
|
89
89
|
}
|
90
|
-
else if (this._lastSpanFinishFrames &&
|
91
|
-
Math.abs(this._lastSpanFinishFrames.timestamp - finalEndTimestamp) <
|
92
|
-
MARGIN_OF_ERROR_SECONDS) {
|
90
|
+
else if (this._lastSpanFinishFrames && Math.abs(this._lastSpanFinishFrames.timestamp - finalEndTimestamp) < MARGIN_OF_ERROR_SECONDS) {
|
93
91
|
// Fallback to the last span finish if it is within the margin of error of the actual finish timestamp.
|
94
92
|
// This should be the case for trimEnd.
|
95
93
|
finalFinishFrames = this._lastSpanFinishFrames.nativeFrames;
|
@@ -109,15 +107,14 @@ export class NativeFramesInstrumentation {
|
|
109
107
|
frames_slow: {
|
110
108
|
value: finalFinishFrames.slowFrames - startFrames.slowFrames,
|
111
109
|
unit: 'none'
|
112
|
-
}
|
110
|
+
}
|
113
111
|
};
|
114
112
|
return measurements;
|
115
113
|
}
|
116
114
|
/**
|
117
|
-
|
118
|
-
|
115
|
+
* Fetch finish frames for a transaction at the current time. Calls any awaiting listeners.
|
116
|
+
*/
|
119
117
|
async _fetchFramesForTransaction(transaction) {
|
120
|
-
var _a;
|
121
118
|
const startFrames = transaction.data.__startFrames;
|
122
119
|
// This timestamp marks when the finish frames were retrieved. It should be pretty close to the transaction finish.
|
123
120
|
const timestamp = timestampInSeconds();
|
@@ -127,14 +124,14 @@ export class NativeFramesInstrumentation {
|
|
127
124
|
}
|
128
125
|
this._finishFrames.set(transaction.traceId, {
|
129
126
|
nativeFrames: finishFrames,
|
130
|
-
timestamp
|
127
|
+
timestamp
|
131
128
|
});
|
132
|
-
|
129
|
+
this._framesListeners.get(transaction.traceId)?.();
|
133
130
|
setTimeout(() => this._cancelFinishFrames(transaction), 2000);
|
134
131
|
}
|
135
132
|
/**
|
136
|
-
|
137
|
-
|
133
|
+
* On a finish frames failure, we cancel the await.
|
134
|
+
*/
|
138
135
|
_cancelFinishFrames(transaction) {
|
139
136
|
if (this._finishFrames.has(transaction.traceId)) {
|
140
137
|
this._finishFrames.delete(transaction.traceId);
|
@@ -142,28 +139,27 @@ export class NativeFramesInstrumentation {
|
|
142
139
|
}
|
143
140
|
}
|
144
141
|
/**
|
145
|
-
|
146
|
-
|
147
|
-
|
142
|
+
* Adds frames measurements to an event. Called from a valid event processor.
|
143
|
+
* Awaits for finish frames if needed.
|
144
|
+
*/
|
148
145
|
async _processEvent(event, doesExist) {
|
149
|
-
var _a, _b;
|
150
146
|
if (!doesExist()) {
|
151
147
|
return event;
|
152
148
|
}
|
153
|
-
if (event.type === 'transaction' &&
|
154
|
-
event.transaction &&
|
155
|
-
event.contexts &&
|
156
|
-
event.contexts.trace) {
|
149
|
+
if (event.type === 'transaction' && event.transaction && event.contexts && event.contexts.trace) {
|
157
150
|
const traceContext = event.contexts.trace;
|
158
151
|
const traceId = traceContext.trace_id;
|
159
|
-
if (traceId &&
|
152
|
+
if (traceId && traceContext.data?.__startFrames && event.timestamp) {
|
160
153
|
const measurements = await this._getFramesMeasurements(traceId, event.timestamp, traceContext.data.__startFrames);
|
161
154
|
if (!measurements) {
|
162
155
|
logger.log(`[NativeFrames] Could not fetch native frames for ${traceContext.op} transaction ${event.transaction}. Not adding native frames measurements.`);
|
163
156
|
}
|
164
157
|
else {
|
165
158
|
logger.log(`[Measurements] Adding measurements to ${traceContext.op} transaction ${event.transaction}: ${JSON.stringify(measurements, undefined, 2)}`);
|
166
|
-
event.measurements =
|
159
|
+
event.measurements = {
|
160
|
+
...(event.measurements ?? {}),
|
161
|
+
...measurements
|
162
|
+
};
|
167
163
|
this._finishFrames.delete(traceId);
|
168
164
|
}
|
169
165
|
delete traceContext.data.__startFrames;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nativeframes.js","sourceRoot":"","sources":["
|
1
|
+
{"version":3,"file":"nativeframes.js","sourceRoot":"","sources":["../../../src/sentry/tracing/nativeframes.ts"],"names":[],"mappings":"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"}
|