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