@dxos/observability 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1
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-JV7HV5M3.mjs +147 -0
- package/dist/lib/browser/chunk-JV7HV5M3.mjs.map +7 -0
- package/dist/lib/browser/{chunk-RWIBODSU.mjs → chunk-LCUEUKOU.mjs} +155 -107
- package/dist/lib/browser/chunk-LCUEUKOU.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3LKCQYWD.mjs → chunk-WTIK6YHB.mjs} +2 -4
- package/dist/lib/browser/{chunk-3LKCQYWD.mjs.map → chunk-WTIK6YHB.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +6 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/observability-ZJBNR5EC.mjs +10 -0
- package/dist/lib/browser/segment/index.mjs +7 -81
- package/dist/lib/browser/segment/index.mjs.map +4 -4
- package/dist/lib/browser/sentry/index.mjs +1 -1
- package/dist/lib/browser/{sentry-log-processor-2KNHVHXL.mjs → sentry-log-processor-DVY46HFR.mjs} +2 -2
- package/dist/lib/browser/{sentry-log-processor-2KNHVHXL.mjs.map → sentry-log-processor-DVY46HFR.mjs.map} +2 -2
- package/dist/lib/node/{chunk-X2D2I2IE.cjs → chunk-TZZPITFA.cjs} +156 -109
- package/dist/lib/node/chunk-TZZPITFA.cjs.map +7 -0
- package/dist/lib/node/{chunk-HKBUNAUG.cjs → chunk-VJYGUKWI.cjs} +6 -6
- package/dist/lib/node/{chunk-HKBUNAUG.cjs.map → chunk-VJYGUKWI.cjs.map} +3 -3
- package/dist/lib/node/chunk-XIE7NKDF.cjs +213 -0
- package/dist/lib/node/chunk-XIE7NKDF.cjs.map +7 -0
- package/dist/lib/node/index.cjs +20 -15
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{observability-MM62IY7P.cjs → observability-LQYGR6H5.cjs} +9 -6
- package/dist/lib/node/observability-LQYGR6H5.cjs.map +7 -0
- package/dist/lib/node/segment/index.cjs +6 -136
- package/dist/lib/node/segment/index.cjs.map +4 -4
- package/dist/lib/node/sentry/index.cjs +10 -10
- package/dist/lib/node/sentry/index.cjs.map +1 -1
- package/dist/lib/node/{sentry-log-processor-SJZRJ7IS.cjs → sentry-log-processor-XWB4ECU6.cjs} +8 -8
- package/dist/lib/node/{sentry-log-processor-SJZRJ7IS.cjs.map → sentry-log-processor-XWB4ECU6.cjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-CMDADTM3.mjs → chunk-ANXHKE36.mjs} +3 -3
- package/dist/lib/node-esm/{chunk-CMDADTM3.mjs.map → chunk-ANXHKE36.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-S7JHPCWW.mjs → chunk-HMGFYMJF.mjs} +154 -107
- package/dist/lib/node-esm/chunk-HMGFYMJF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-IKCDMDT3.mjs +202 -0
- package/dist/lib/node-esm/chunk-IKCDMDT3.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +6 -1
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/observability-KDS7YGCQ.mjs +11 -0
- package/dist/lib/node-esm/segment/index.mjs +7 -139
- package/dist/lib/node-esm/segment/index.mjs.map +4 -4
- package/dist/lib/node-esm/sentry/index.mjs +1 -1
- package/dist/lib/node-esm/{sentry-log-processor-BVINGAOV.mjs → sentry-log-processor-FO6MIWBC.mjs} +2 -2
- package/dist/lib/node-esm/{sentry-log-processor-BVINGAOV.mjs.map → sentry-log-processor-FO6MIWBC.mjs.map} +2 -2
- package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/browser-observability.js +15 -14
- package/dist/types/src/helpers/browser-observability.js.map +1 -1
- package/dist/types/src/helpers/common.d.ts +3 -1
- package/dist/types/src/helpers/common.d.ts.map +1 -1
- package/dist/types/src/helpers/common.js +4 -0
- package/dist/types/src/helpers/common.js.map +1 -1
- package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/node-observability.js +2 -2
- package/dist/types/src/helpers/node-observability.js.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.d.ts +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.js +38 -36
- package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
- package/dist/types/src/observability.d.ts +30 -25
- package/dist/types/src/observability.d.ts.map +1 -1
- package/dist/types/src/observability.js +61 -39
- package/dist/types/src/observability.js.map +1 -1
- package/dist/types/src/segment/base.d.ts +15 -0
- package/dist/types/src/segment/base.d.ts.map +1 -0
- package/dist/types/src/segment/base.js +50 -0
- package/dist/types/src/segment/base.js.map +1 -0
- package/dist/types/src/segment/browser.d.ts +10 -5
- package/dist/types/src/segment/browser.d.ts.map +1 -1
- package/dist/types/src/segment/browser.js +27 -25
- package/dist/types/src/segment/browser.js.map +1 -1
- package/dist/types/src/segment/node.d.ts +10 -14
- package/dist/types/src/segment/node.d.ts.map +1 -1
- package/dist/types/src/segment/node.js +26 -29
- package/dist/types/src/segment/node.js.map +1 -1
- package/dist/types/src/segment/types.d.ts +39 -11
- package/dist/types/src/segment/types.d.ts.map +1 -1
- package/dist/types/src/segment/types.js +14 -0
- package/dist/types/src/segment/types.js.map +1 -1
- package/dist/types/src/sentry/browser.d.ts +1 -1
- package/dist/types/src/sentry/browser.d.ts.map +1 -1
- package/dist/types/src/sentry/browser.js +2 -2
- package/dist/types/src/sentry/browser.js.map +1 -1
- package/dist/types/src/sentry/node.d.ts +1 -1
- package/dist/types/src/sentry/node.d.ts.map +1 -1
- package/dist/types/src/sentry/node.js +2 -2
- package/dist/types/src/sentry/node.js.map +1 -1
- package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
- package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
- package/package.json +15 -15
- package/src/helpers/browser-observability.ts +13 -17
- package/src/helpers/common.ts +15 -2
- package/src/helpers/node-observability.ts +3 -2
- package/src/helpers/setup-telemetry-listeners.ts +39 -41
- package/src/observability.ts +101 -64
- package/src/segment/base.ts +69 -0
- package/src/segment/browser.ts +28 -29
- package/src/segment/node.ts +30 -33
- package/src/segment/types.ts +39 -9
- package/src/sentry/browser.ts +2 -2
- package/src/sentry/node.ts +2 -2
- package/src/sentry/sentry-log-processor.ts +3 -0
- package/dist/lib/browser/chunk-RWIBODSU.mjs.map +0 -7
- package/dist/lib/browser/observability-VEOITBLM.mjs +0 -7
- package/dist/lib/node/chunk-X2D2I2IE.cjs.map +0 -7
- package/dist/lib/node/observability-MM62IY7P.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-S7JHPCWW.mjs.map +0 -7
- package/dist/lib/node-esm/observability-OLS7SWZT.mjs +0 -8
- /package/dist/lib/browser/{observability-VEOITBLM.mjs.map → observability-ZJBNR5EC.mjs.map} +0 -0
- /package/dist/lib/node-esm/{observability-OLS7SWZT.mjs.map → observability-KDS7YGCQ.mjs.map} +0 -0
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TelemetryEvent
|
|
3
|
+
} from "./chunk-JV7HV5M3.mjs";
|
|
4
|
+
|
|
1
5
|
// packages/sdk/observability/src/observability.ts
|
|
2
6
|
import { Event, scheduleTaskInterval } from "@dxos/async";
|
|
3
7
|
import { PublicKey } from "@dxos/client";
|
|
@@ -72,20 +76,26 @@ var storeObservabilityGroup = async (namespace, value) => {
|
|
|
72
76
|
});
|
|
73
77
|
}
|
|
74
78
|
};
|
|
75
|
-
var initializeAppObservability = async ({
|
|
79
|
+
var initializeAppObservability = async ({
|
|
80
|
+
namespace,
|
|
81
|
+
config,
|
|
82
|
+
// TODO(nf): Configure mode.
|
|
83
|
+
mode = "basic",
|
|
84
|
+
tracingEnable = false,
|
|
85
|
+
replayEnable = false
|
|
86
|
+
}) => {
|
|
76
87
|
log("initializeAppObservability", {
|
|
77
88
|
config
|
|
78
89
|
}, {
|
|
79
90
|
F: __dxlog_file,
|
|
80
|
-
L:
|
|
91
|
+
L: 73,
|
|
81
92
|
S: void 0,
|
|
82
93
|
C: (f, a) => f(...a)
|
|
83
94
|
});
|
|
84
95
|
const group = await getObservabilityGroup(namespace) ?? void 0;
|
|
85
96
|
const release = `${namespace}@${config.get("runtime.app.build.version")}`;
|
|
86
97
|
const environment = config.get("runtime.app.env.DX_ENVIRONMENT");
|
|
87
|
-
const
|
|
88
|
-
const { Observability: Observability2 } = await import("./observability-VEOITBLM.mjs");
|
|
98
|
+
const { Observability: Observability2 } = await import("./observability-ZJBNR5EC.mjs");
|
|
89
99
|
const observability = new Observability2({
|
|
90
100
|
namespace,
|
|
91
101
|
release,
|
|
@@ -100,18 +110,20 @@ var initializeAppObservability = async ({ namespace, config, mode = "basic", tra
|
|
|
100
110
|
tracing: tracingEnable,
|
|
101
111
|
replay: replayEnable,
|
|
102
112
|
// TODO(wittjosiah): Configure these.
|
|
113
|
+
// Consider using a sampling function to dynamically configure these values.
|
|
114
|
+
// https://docs.sentry.io/platforms/javascript/configuration/sampling/#setting-a-sampling-function
|
|
103
115
|
sampleRate: 1,
|
|
104
|
-
// TODO(mykola): Lower this to 0.1.
|
|
105
116
|
replaySampleRate: 1,
|
|
106
117
|
replaySampleRateOnError: 1
|
|
107
118
|
}
|
|
108
119
|
}
|
|
109
120
|
});
|
|
121
|
+
const observabilityDisabled = await isObservabilityDisabled(namespace);
|
|
110
122
|
if (observabilityDisabled) {
|
|
111
123
|
observability.setMode("disabled");
|
|
112
124
|
log.info("observability disabled", void 0, {
|
|
113
125
|
F: __dxlog_file,
|
|
114
|
-
L:
|
|
126
|
+
L: 113,
|
|
115
127
|
S: void 0,
|
|
116
128
|
C: (f, a) => f(...a)
|
|
117
129
|
});
|
|
@@ -138,7 +150,7 @@ var initializeAppObservability = async ({ namespace, config, mode = "basic", tra
|
|
|
138
150
|
await observability.initialize();
|
|
139
151
|
observability.startErrorLogs();
|
|
140
152
|
const ipData = await getIPData(config);
|
|
141
|
-
ipData && observability.
|
|
153
|
+
ipData && observability.setIPDataTelemetryTags(ipData);
|
|
142
154
|
if (typeof navigator !== "undefined" && navigator.storage?.estimate) {
|
|
143
155
|
setInterval(async () => {
|
|
144
156
|
try {
|
|
@@ -148,7 +160,7 @@ var initializeAppObservability = async ({ namespace, config, mode = "basic", tra
|
|
|
148
160
|
} catch (error) {
|
|
149
161
|
log.warn("Failed to run estimate()", error, {
|
|
150
162
|
F: __dxlog_file,
|
|
151
|
-
L:
|
|
163
|
+
L: 168,
|
|
152
164
|
S: void 0,
|
|
153
165
|
C: (f, a) => f(...a)
|
|
154
166
|
});
|
|
@@ -158,7 +170,7 @@ var initializeAppObservability = async ({ namespace, config, mode = "basic", tra
|
|
|
158
170
|
} catch (err) {
|
|
159
171
|
log.error("Failed to initialize app observability", err, {
|
|
160
172
|
F: __dxlog_file,
|
|
161
|
-
L:
|
|
173
|
+
L: 173,
|
|
162
174
|
S: void 0,
|
|
163
175
|
C: (f, a) => f(...a)
|
|
164
176
|
});
|
|
@@ -177,6 +189,12 @@ var getTelemetryIdentifier = (client) => {
|
|
|
177
189
|
}
|
|
178
190
|
return void 0;
|
|
179
191
|
};
|
|
192
|
+
var getTelemetryIdentity = (client) => {
|
|
193
|
+
const did = getTelemetryIdentifier(client);
|
|
194
|
+
return {
|
|
195
|
+
did
|
|
196
|
+
};
|
|
197
|
+
};
|
|
180
198
|
|
|
181
199
|
// packages/sdk/observability/src/helpers/node-observability.ts
|
|
182
200
|
import yaml from "js-yaml";
|
|
@@ -244,11 +262,11 @@ var initializeNodeObservability = async ({ namespace, version, config, installat
|
|
|
244
262
|
const release = `${namespace}@${version}`;
|
|
245
263
|
const environment = process.env.DX_ENVIRONMENT ?? "unknown";
|
|
246
264
|
const observability = new Observability({
|
|
265
|
+
mode,
|
|
247
266
|
namespace,
|
|
248
267
|
release,
|
|
249
268
|
environment,
|
|
250
269
|
group,
|
|
251
|
-
mode,
|
|
252
270
|
errorLog: {
|
|
253
271
|
sentryInitOptions: {
|
|
254
272
|
environment,
|
|
@@ -263,7 +281,7 @@ var initializeNodeObservability = async ({ namespace, version, config, installat
|
|
|
263
281
|
try {
|
|
264
282
|
const res = await fetch(`https://api.ipdata.co/?api-key=${IPDATA_API_KEY}`);
|
|
265
283
|
const ipData = await res.json();
|
|
266
|
-
ipData && observability.
|
|
284
|
+
ipData && observability.setIPDataTelemetryTags(ipData);
|
|
267
285
|
} catch (err) {
|
|
268
286
|
observability?.captureException(err);
|
|
269
287
|
}
|
|
@@ -310,63 +328,69 @@ var setupTelemetryListeners = (namespace, client, observability) => {
|
|
|
310
328
|
if (!id) {
|
|
311
329
|
return;
|
|
312
330
|
}
|
|
313
|
-
setTimeout(() =>
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
331
|
+
setTimeout(() => {
|
|
332
|
+
observability.track({
|
|
333
|
+
...getTelemetryIdentity(client),
|
|
334
|
+
action: "window.click",
|
|
335
|
+
properties: {
|
|
336
|
+
id: event.target?.id,
|
|
337
|
+
path: event.composedPath().filter((el) => Boolean(el.tagName)).map((el) => `${el.tagName.toLowerCase()}${el.id ? `#${el.id}` : ""}`).reverse().join(">")
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
});
|
|
322
341
|
};
|
|
323
342
|
const focusCallback = () => {
|
|
324
343
|
const now = /* @__PURE__ */ new Date();
|
|
325
|
-
setTimeout(() =>
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
344
|
+
setTimeout(() => {
|
|
345
|
+
observability.track({
|
|
346
|
+
...getTelemetryIdentity(client),
|
|
347
|
+
action: "window.focus",
|
|
348
|
+
properties: {
|
|
349
|
+
timeAway: now.getTime() - lastFocusEvent.getTime()
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
});
|
|
333
353
|
lastFocusEvent = now;
|
|
334
354
|
};
|
|
335
355
|
const blurCallback = () => {
|
|
336
356
|
const now = /* @__PURE__ */ new Date();
|
|
337
|
-
const
|
|
338
|
-
setTimeout(() =>
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
357
|
+
const duration = now.getTime() - lastFocusEvent.getTime();
|
|
358
|
+
setTimeout(() => {
|
|
359
|
+
observability.track({
|
|
360
|
+
...getTelemetryIdentity(client),
|
|
361
|
+
action: "window.blur",
|
|
362
|
+
properties: {
|
|
363
|
+
duration
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
});
|
|
346
367
|
lastFocusEvent = now;
|
|
347
|
-
totalTime = totalTime +
|
|
368
|
+
totalTime = totalTime + duration;
|
|
348
369
|
};
|
|
349
370
|
const unloadCallback = () => {
|
|
350
|
-
setTimeout(() =>
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
371
|
+
setTimeout(() => {
|
|
372
|
+
observability.track({
|
|
373
|
+
...getTelemetryIdentity(client),
|
|
374
|
+
action: "page.unload",
|
|
375
|
+
properties: {
|
|
376
|
+
duration: totalTime
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
});
|
|
358
380
|
};
|
|
359
381
|
const errorCallback = (event) => {
|
|
360
|
-
setTimeout(() =>
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
382
|
+
setTimeout(() => {
|
|
383
|
+
observability.track({
|
|
384
|
+
...getTelemetryIdentity(client),
|
|
385
|
+
action: "window.error",
|
|
386
|
+
properties: {
|
|
387
|
+
message: event.message,
|
|
388
|
+
filename: event.filename,
|
|
389
|
+
stack: event.error?.stack,
|
|
390
|
+
cause: event.error?.cause
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
});
|
|
370
394
|
};
|
|
371
395
|
window.addEventListener("click", clickCallback, true);
|
|
372
396
|
window.addEventListener("focus", focusCallback);
|
|
@@ -389,35 +413,32 @@ var SPACE_TELEMETRY_MIN_INTERVAL = 1e3 * 60 * 60;
|
|
|
389
413
|
var NETWORK_METRICS_MIN_INTERVAL = 1e3 * 60 * 5;
|
|
390
414
|
var Observability = class {
|
|
391
415
|
// TODO(nf): make platform a required extension?
|
|
392
|
-
constructor({ namespace, environment, release, config,
|
|
393
|
-
|
|
416
|
+
constructor({ mode, namespace, environment, release, config, group, secrets, telemetry, errorLog }) {
|
|
417
|
+
this._tags = /* @__PURE__ */ new Map();
|
|
394
418
|
this._ctx = new Context(void 0, {
|
|
395
419
|
F: __dxlog_file3,
|
|
396
|
-
L:
|
|
420
|
+
L: 115
|
|
397
421
|
});
|
|
398
|
-
this.
|
|
399
|
-
this.addIPDataTelemetryTags = (ipData) => {
|
|
422
|
+
this.setIPDataTelemetryTags = (ipData) => {
|
|
400
423
|
this.setTag("city", ipData.city, "telemetry");
|
|
401
424
|
this.setTag("region", ipData.region, "telemetry");
|
|
402
425
|
this.setTag("country", ipData.country, "telemetry");
|
|
403
426
|
ipData.latitude && this.setTag("latitude", ipData.latitude.toString(), "telemetry");
|
|
404
427
|
ipData.longitude && this.setTag("longitude", ipData.longitude.toString(), "telemetry");
|
|
405
428
|
};
|
|
406
|
-
this._namespace = namespace;
|
|
407
429
|
this._mode = mode;
|
|
430
|
+
this._namespace = namespace;
|
|
408
431
|
this._config = config;
|
|
409
432
|
this._group = group;
|
|
410
433
|
this._secrets = this._loadSecrets(config, secrets);
|
|
411
434
|
this._telemetryBatchSize = telemetry?.batchSize ?? 30;
|
|
412
435
|
this._errorReportingOptions = errorLog?.sentryInitOptions;
|
|
413
|
-
if (this._group) {
|
|
414
|
-
this.setTag("group", this._group);
|
|
415
|
-
}
|
|
416
|
-
this.setTag("namespace", this._namespace);
|
|
417
|
-
environment && this.setTag("environment", environment);
|
|
418
|
-
release && this.setTag("release", release);
|
|
419
436
|
this.setTag("mode", this._mode);
|
|
437
|
+
this.setTag("namespace", this._namespace);
|
|
438
|
+
this.setTag("environment", environment);
|
|
439
|
+
this.setTag("release", release);
|
|
420
440
|
this.setTag("session", PublicKey.random().toHex());
|
|
441
|
+
this.setTag("group", this._group);
|
|
421
442
|
}
|
|
422
443
|
get mode() {
|
|
423
444
|
return this._mode;
|
|
@@ -448,7 +469,7 @@ var Observability = class {
|
|
|
448
469
|
config
|
|
449
470
|
}, {
|
|
450
471
|
F: __dxlog_file3,
|
|
451
|
-
L:
|
|
472
|
+
L: 176,
|
|
452
473
|
S: this,
|
|
453
474
|
C: (f, a) => f(...a)
|
|
454
475
|
});
|
|
@@ -465,6 +486,12 @@ var Observability = class {
|
|
|
465
486
|
}
|
|
466
487
|
}
|
|
467
488
|
async initialize() {
|
|
489
|
+
log3("initializing...", void 0, {
|
|
490
|
+
F: __dxlog_file3,
|
|
491
|
+
L: 191,
|
|
492
|
+
S: this,
|
|
493
|
+
C: (f, a) => f(...a)
|
|
494
|
+
});
|
|
468
495
|
await this._initLogs();
|
|
469
496
|
await this._initMetrics();
|
|
470
497
|
await this._initTelemetry();
|
|
@@ -472,6 +499,12 @@ var Observability = class {
|
|
|
472
499
|
await this._initTraces();
|
|
473
500
|
}
|
|
474
501
|
async close() {
|
|
502
|
+
log3("closing...", void 0, {
|
|
503
|
+
F: __dxlog_file3,
|
|
504
|
+
L: 200,
|
|
505
|
+
S: this,
|
|
506
|
+
C: (f, a) => f(...a)
|
|
507
|
+
});
|
|
475
508
|
const closes = [];
|
|
476
509
|
this._telemetry && closes.push(this._telemetry.close());
|
|
477
510
|
this._otelMetrics && closes.push(this._otelMetrics.close());
|
|
@@ -482,10 +515,13 @@ var Observability = class {
|
|
|
482
515
|
setMode(mode) {
|
|
483
516
|
this._mode = mode;
|
|
484
517
|
}
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
518
|
+
/**
|
|
519
|
+
* camelCase keys are converted to snake_case in Segment.
|
|
520
|
+
*/
|
|
488
521
|
setTag(key, value, scope) {
|
|
522
|
+
if (value === void 0) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
489
525
|
if (this.enabled && (scope === void 0 || scope === "all" || scope === "errors")) {
|
|
490
526
|
this._setTag?.(key, value);
|
|
491
527
|
}
|
|
@@ -509,13 +545,16 @@ var Observability = class {
|
|
|
509
545
|
idqr
|
|
510
546
|
}, {
|
|
511
547
|
F: __dxlog_file3,
|
|
512
|
-
L:
|
|
548
|
+
L: 247,
|
|
513
549
|
S: this,
|
|
514
550
|
C: (f, a) => f(...a)
|
|
515
551
|
});
|
|
516
552
|
return;
|
|
517
553
|
}
|
|
518
554
|
this.setTag("did", idqr.identity.did);
|
|
555
|
+
this._telemetry?.identify({
|
|
556
|
+
userId: idqr.identity.did
|
|
557
|
+
});
|
|
519
558
|
});
|
|
520
559
|
}
|
|
521
560
|
if (clientServices.DevicesService) {
|
|
@@ -525,7 +564,7 @@ var Observability = class {
|
|
|
525
564
|
device: dqr
|
|
526
565
|
}, {
|
|
527
566
|
F: __dxlog_file3,
|
|
528
|
-
L:
|
|
567
|
+
L: 259,
|
|
529
568
|
S: this,
|
|
530
569
|
C: (f, a) => f(...a)
|
|
531
570
|
});
|
|
@@ -533,7 +572,7 @@ var Observability = class {
|
|
|
533
572
|
}
|
|
534
573
|
invariant(dqr, "empty response from device service", {
|
|
535
574
|
F: __dxlog_file3,
|
|
536
|
-
L:
|
|
575
|
+
L: 263,
|
|
537
576
|
S: this,
|
|
538
577
|
A: [
|
|
539
578
|
"dqr",
|
|
@@ -546,7 +585,7 @@ var Observability = class {
|
|
|
546
585
|
device: dqr
|
|
547
586
|
}, {
|
|
548
587
|
F: __dxlog_file3,
|
|
549
|
-
L:
|
|
588
|
+
L: 266,
|
|
550
589
|
S: this,
|
|
551
590
|
C: (f, a) => f(...a)
|
|
552
591
|
});
|
|
@@ -584,14 +623,14 @@ var Observability = class {
|
|
|
584
623
|
namespace: this._namespace
|
|
585
624
|
}, {
|
|
586
625
|
F: __dxlog_file3,
|
|
587
|
-
L:
|
|
626
|
+
L: 310,
|
|
588
627
|
S: this,
|
|
589
628
|
C: (f, a) => f(...a)
|
|
590
629
|
});
|
|
591
630
|
} else {
|
|
592
631
|
log3("otel logs disabled", void 0, {
|
|
593
632
|
F: __dxlog_file3,
|
|
594
|
-
L:
|
|
633
|
+
L: 312,
|
|
595
634
|
S: this,
|
|
596
635
|
C: (f, a) => f(...a)
|
|
597
636
|
});
|
|
@@ -617,14 +656,14 @@ var Observability = class {
|
|
|
617
656
|
});
|
|
618
657
|
log3("otel metrics enabled", void 0, {
|
|
619
658
|
F: __dxlog_file3,
|
|
620
|
-
L:
|
|
659
|
+
L: 337,
|
|
621
660
|
S: this,
|
|
622
661
|
C: (f, a) => f(...a)
|
|
623
662
|
});
|
|
624
663
|
} else {
|
|
625
664
|
log3("otel metrics disabled", void 0, {
|
|
626
665
|
F: __dxlog_file3,
|
|
627
|
-
L:
|
|
666
|
+
L: 339,
|
|
628
667
|
S: this,
|
|
629
668
|
C: (f, a) => f(...a)
|
|
630
669
|
});
|
|
@@ -647,7 +686,7 @@ var Observability = class {
|
|
|
647
686
|
updateSignalMetrics.on(this._ctx, async () => {
|
|
648
687
|
log3("send signal metrics", void 0, {
|
|
649
688
|
F: __dxlog_file3,
|
|
650
|
-
L:
|
|
689
|
+
L: 361,
|
|
651
690
|
S: this,
|
|
652
691
|
C: (f, a) => f(...a)
|
|
653
692
|
});
|
|
@@ -699,7 +738,7 @@ var Observability = class {
|
|
|
699
738
|
updateSpaceMetrics.on(this._ctx, async () => {
|
|
700
739
|
log3("send space metrics", void 0, {
|
|
701
740
|
F: __dxlog_file3,
|
|
702
|
-
L:
|
|
741
|
+
L: 414,
|
|
703
742
|
S: this,
|
|
704
743
|
C: (f, a) => f(...a)
|
|
705
744
|
});
|
|
@@ -724,16 +763,17 @@ var Observability = class {
|
|
|
724
763
|
updateSpaceTelemetry.on(this._ctx, async () => {
|
|
725
764
|
log3("send space telemetry", void 0, {
|
|
726
765
|
F: __dxlog_file3,
|
|
727
|
-
L:
|
|
766
|
+
L: 425,
|
|
728
767
|
S: this,
|
|
729
768
|
C: (f, a) => f(...a)
|
|
730
769
|
});
|
|
731
770
|
for (const data of mapSpaces(spaces, {
|
|
732
771
|
truncateKeys: true
|
|
733
772
|
})) {
|
|
734
|
-
this.
|
|
735
|
-
|
|
736
|
-
|
|
773
|
+
this.track({
|
|
774
|
+
...getTelemetryIdentity(client),
|
|
775
|
+
event: TelemetryEvent.METRICS,
|
|
776
|
+
action: "space.update",
|
|
737
777
|
properties: data
|
|
738
778
|
});
|
|
739
779
|
}
|
|
@@ -760,14 +800,14 @@ var Observability = class {
|
|
|
760
800
|
const platform = await client.services.services.SystemService?.getPlatform();
|
|
761
801
|
invariant(platform, "platform is required", {
|
|
762
802
|
F: __dxlog_file3,
|
|
763
|
-
L:
|
|
803
|
+
L: 463,
|
|
764
804
|
S: this,
|
|
765
805
|
A: [
|
|
766
806
|
"platform",
|
|
767
807
|
"'platform is required'"
|
|
768
808
|
]
|
|
769
809
|
});
|
|
770
|
-
this.setTag("
|
|
810
|
+
this.setTag("platformType", Platform.PLATFORM_TYPE[platform.type].toLowerCase());
|
|
771
811
|
if (this._mode === "full") {
|
|
772
812
|
if (platform.platform) {
|
|
773
813
|
this.setTag("platform", platform.platform);
|
|
@@ -798,7 +838,7 @@ var Observability = class {
|
|
|
798
838
|
error
|
|
799
839
|
}, {
|
|
800
840
|
F: __dxlog_file3,
|
|
801
|
-
L:
|
|
841
|
+
L: 497,
|
|
802
842
|
S: this,
|
|
803
843
|
C: (f, a) => f(...a)
|
|
804
844
|
}));
|
|
@@ -823,27 +863,25 @@ var Observability = class {
|
|
|
823
863
|
} else {
|
|
824
864
|
log3("segment disabled", void 0, {
|
|
825
865
|
F: __dxlog_file3,
|
|
826
|
-
L:
|
|
866
|
+
L: 523,
|
|
827
867
|
S: this,
|
|
828
868
|
C: (f, a) => f(...a)
|
|
829
869
|
});
|
|
830
870
|
}
|
|
831
871
|
}
|
|
832
872
|
/**
|
|
833
|
-
*
|
|
834
|
-
*
|
|
873
|
+
* Submit telemetry page view.
|
|
835
874
|
* The default implementation uses Segment.
|
|
836
875
|
*/
|
|
837
|
-
|
|
838
|
-
this._telemetry?.
|
|
876
|
+
page(options) {
|
|
877
|
+
this._telemetry?.page(options);
|
|
839
878
|
}
|
|
840
879
|
/**
|
|
841
|
-
*
|
|
842
|
-
*
|
|
880
|
+
* Submit telemetry user action.
|
|
843
881
|
* The default implementation uses Segment.
|
|
844
882
|
*/
|
|
845
|
-
|
|
846
|
-
this._telemetry?.
|
|
883
|
+
track(options) {
|
|
884
|
+
this._telemetry?.track(options);
|
|
847
885
|
}
|
|
848
886
|
//
|
|
849
887
|
// Error Logs
|
|
@@ -851,7 +889,7 @@ var Observability = class {
|
|
|
851
889
|
async _initErrorLogs() {
|
|
852
890
|
if (this._secrets.SENTRY_DESTINATION && this._mode !== "disabled") {
|
|
853
891
|
const { captureException, captureUserFeedback, init, setTag } = await import("./sentry/index.mjs");
|
|
854
|
-
const { SentryLogProcessor } = await import("./sentry-log-processor-
|
|
892
|
+
const { SentryLogProcessor } = await import("./sentry-log-processor-DVY46HFR.mjs");
|
|
855
893
|
this._captureException = captureException;
|
|
856
894
|
this._captureUserFeedback = captureUserFeedback;
|
|
857
895
|
this._setTag = setTag;
|
|
@@ -860,7 +898,7 @@ var Observability = class {
|
|
|
860
898
|
options: this._errorReportingOptions
|
|
861
899
|
}, {
|
|
862
900
|
F: __dxlog_file3,
|
|
863
|
-
L:
|
|
901
|
+
L: 556,
|
|
864
902
|
S: this,
|
|
865
903
|
C: (f, a) => f(...a)
|
|
866
904
|
});
|
|
@@ -879,7 +917,7 @@ var Observability = class {
|
|
|
879
917
|
} else {
|
|
880
918
|
log3("sentry disabled", void 0, {
|
|
881
919
|
F: __dxlog_file3,
|
|
882
|
-
L:
|
|
920
|
+
L: 576,
|
|
883
921
|
S: this,
|
|
884
922
|
C: (f, a) => f(...a)
|
|
885
923
|
});
|
|
@@ -891,7 +929,7 @@ var Observability = class {
|
|
|
891
929
|
startTraces() {
|
|
892
930
|
this._otelTraces && this._otelTraces.start();
|
|
893
931
|
}
|
|
894
|
-
// TODO(nf):
|
|
932
|
+
// TODO(nf): Refactor init based on providers and their capabilities.
|
|
895
933
|
async _initTraces() {
|
|
896
934
|
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== "disabled") {
|
|
897
935
|
const { OtelTraces } = await import("./otel-WFASQZXZ.mjs");
|
|
@@ -911,7 +949,6 @@ var Observability = class {
|
|
|
911
949
|
}
|
|
912
950
|
/**
|
|
913
951
|
* Manually capture an exception.
|
|
914
|
-
*
|
|
915
952
|
* The default implementation uses Sentry.
|
|
916
953
|
*/
|
|
917
954
|
captureException(err) {
|
|
@@ -921,11 +958,21 @@ var Observability = class {
|
|
|
921
958
|
}
|
|
922
959
|
/**
|
|
923
960
|
* Manually capture user feedback.
|
|
924
|
-
*
|
|
925
961
|
* The default implementation uses Sentry.
|
|
926
962
|
*/
|
|
927
|
-
captureUserFeedback(
|
|
928
|
-
|
|
963
|
+
captureUserFeedback(message) {
|
|
964
|
+
if (!this._secrets.SENTRY_DESTINATION) {
|
|
965
|
+
log3.info("Feedback submitted without Sentry destination", {
|
|
966
|
+
message
|
|
967
|
+
}, {
|
|
968
|
+
F: __dxlog_file3,
|
|
969
|
+
L: 625,
|
|
970
|
+
S: this,
|
|
971
|
+
C: (f, a) => f(...a)
|
|
972
|
+
});
|
|
973
|
+
return;
|
|
974
|
+
}
|
|
975
|
+
void this._captureUserFeedback?.(message);
|
|
929
976
|
}
|
|
930
977
|
};
|
|
931
978
|
|
|
@@ -939,10 +986,11 @@ export {
|
|
|
939
986
|
storeObservabilityGroup,
|
|
940
987
|
initializeAppObservability,
|
|
941
988
|
getTelemetryIdentifier,
|
|
989
|
+
getTelemetryIdentity,
|
|
942
990
|
showObservabilityBanner,
|
|
943
991
|
getObservabilityState,
|
|
944
992
|
initializeNodeObservability,
|
|
945
993
|
mapSpaces,
|
|
946
994
|
setupTelemetryListeners
|
|
947
995
|
};
|
|
948
|
-
//# sourceMappingURL=chunk-
|
|
996
|
+
//# sourceMappingURL=chunk-LCUEUKOU.mjs.map
|