@dxos/observability 0.8.4-main.84f28bd → 0.8.4-main.937b3ca
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-5ICT2XF2.mjs +1 -0
- package/dist/lib/browser/{chunk-MWTIKIBZ.mjs → chunk-5LN7D6GM.mjs} +14 -13
- package/dist/lib/browser/chunk-5LN7D6GM.mjs.map +7 -0
- package/dist/lib/browser/{chunk-33TCMAUB.mjs → chunk-JJQT5TQH.mjs} +85 -409
- package/dist/lib/browser/chunk-JJQT5TQH.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YEPQFAES.mjs → chunk-O4BG5MRL.mjs} +2 -2
- package/dist/lib/browser/chunk-O4BG5MRL.mjs.map +7 -0
- package/dist/lib/browser/chunk-U6JWT3E2.mjs +1 -0
- package/dist/lib/browser/chunk-VL6LVQPU.mjs +69 -0
- package/dist/lib/browser/chunk-VL6LVQPU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +342 -16
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/observability-XK652NZG.mjs +11 -0
- package/dist/lib/browser/otel/traces-browser.mjs +7 -0
- package/dist/lib/browser/otel/traces.mjs +7 -0
- package/dist/lib/browser/otel/traces.mjs.map +7 -0
- package/dist/lib/browser/{otel-IRDZ7PES.mjs → otel-DI4ASU7Y.mjs} +44 -95
- package/dist/lib/browser/otel-DI4ASU7Y.mjs.map +7 -0
- package/dist/lib/browser/segment/browser.mjs +9 -0
- package/dist/lib/browser/segment/browser.mjs.map +7 -0
- package/dist/lib/browser/segment/index.mjs +4 -3
- package/dist/lib/browser/segment/node.mjs +9 -0
- package/dist/lib/browser/segment/node.mjs.map +7 -0
- package/dist/lib/browser/sentry/browser.mjs +23 -0
- package/dist/lib/browser/sentry/browser.mjs.map +7 -0
- package/dist/lib/browser/sentry/index.mjs +2 -2
- package/dist/lib/browser/sentry/node.mjs +23 -0
- package/dist/lib/browser/sentry/node.mjs.map +7 -0
- package/dist/lib/browser/{sentry-log-processor-3F3SBJXM.mjs → sentry-log-processor-W7LI6WXA.mjs} +53 -53
- package/dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-EYW4X3O6.mjs → chunk-KKNY7TRV.mjs} +85 -409
- package/dist/lib/node-esm/chunk-KKNY7TRV.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MRAK2H7O.mjs → chunk-KLJGCUYA.mjs} +1 -1
- package/dist/lib/node-esm/chunk-KLJGCUYA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KVJTNW3F.mjs +147 -0
- package/dist/lib/node-esm/chunk-KVJTNW3F.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs → chunk-M4627SMT.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-TEH6VIKV.mjs.map → chunk-M4627SMT.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-QUZL7LKE.mjs +2 -0
- package/dist/lib/node-esm/chunk-QUZL7LKE.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs +62 -0
- package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WAGGA7IT.mjs +52 -0
- package/dist/lib/node-esm/chunk-WAGGA7IT.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +343 -16
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/observability-CXQ3CZGB.mjs +13 -0
- package/dist/lib/node-esm/observability-CXQ3CZGB.mjs.map +7 -0
- package/dist/lib/node-esm/otel/traces-browser.mjs +70 -0
- package/dist/lib/node-esm/otel/traces-browser.mjs.map +7 -0
- package/dist/lib/node-esm/otel/traces.mjs +8 -0
- package/dist/lib/node-esm/otel/traces.mjs.map +7 -0
- package/dist/lib/node-esm/{otel-62HYJETM.mjs → otel-JFXO22WD.mjs} +43 -76
- package/dist/lib/node-esm/otel-JFXO22WD.mjs.map +7 -0
- package/dist/lib/node-esm/segment/browser.mjs +92 -0
- package/dist/lib/node-esm/segment/browser.mjs.map +7 -0
- package/dist/lib/node-esm/segment/index.mjs +7 -4
- package/dist/lib/node-esm/segment/node.mjs +11 -0
- package/dist/lib/node-esm/segment/node.mjs.map +7 -0
- package/dist/lib/node-esm/sentry/browser.mjs +165 -0
- package/dist/lib/node-esm/sentry/browser.mjs.map +7 -0
- package/dist/lib/node-esm/sentry/index.mjs +2 -2
- package/dist/lib/node-esm/sentry/node.mjs +24 -0
- package/dist/lib/node-esm/sentry/node.mjs.map +7 -0
- package/dist/lib/node-esm/{sentry-log-processor-JAYRA23C.mjs → sentry-log-processor-W3SG4RQL.mjs} +53 -53
- package/dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs.map +7 -0
- package/dist/types/src/helpers/browser-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/browser-observability.js +4 -6
- package/dist/types/src/helpers/browser-observability.js.map +1 -1
- package/dist/types/src/helpers/common.js +1 -1
- package/dist/types/src/helpers/common.js.map +1 -1
- package/dist/types/src/helpers/map-spaces.js +6 -7
- package/dist/types/src/helpers/map-spaces.js.map +1 -1
- package/dist/types/src/helpers/node-observability.d.ts +1 -1
- package/dist/types/src/helpers/node-observability.d.ts.map +1 -1
- package/dist/types/src/helpers/node-observability.js +7 -11
- package/dist/types/src/helpers/node-observability.js.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +1 -1
- package/dist/types/src/helpers/setup-telemetry-listeners.js +4 -7
- package/dist/types/src/helpers/setup-telemetry-listeners.js.map +1 -1
- package/dist/types/src/observability.d.ts +1 -1
- package/dist/types/src/observability.d.ts.map +1 -1
- package/dist/types/src/observability.js +68 -59
- package/dist/types/src/observability.js.map +1 -1
- package/dist/types/src/otel/logs.d.ts.map +1 -1
- package/dist/types/src/otel/logs.js +26 -23
- package/dist/types/src/otel/logs.js.map +1 -1
- package/dist/types/src/otel/metrics.d.ts +0 -1
- package/dist/types/src/otel/metrics.d.ts.map +1 -1
- package/dist/types/src/otel/metrics.js +6 -4
- package/dist/types/src/otel/metrics.js.map +1 -1
- package/dist/types/src/otel/otel.js +1 -1
- package/dist/types/src/otel/otel.js.map +1 -1
- package/dist/types/src/otel/traces-browser.d.ts.map +1 -1
- package/dist/types/src/otel/traces-browser.js +19 -13
- package/dist/types/src/otel/traces-browser.js.map +1 -1
- package/dist/types/src/otel/traces.d.ts.map +1 -1
- package/dist/types/src/otel/traces.js +18 -12
- package/dist/types/src/otel/traces.js.map +1 -1
- package/dist/types/src/segment/base.d.ts +3 -3
- package/dist/types/src/segment/base.d.ts.map +1 -1
- package/dist/types/src/segment/base.js +4 -3
- package/dist/types/src/segment/base.js.map +1 -1
- package/dist/types/src/segment/browser.d.ts +1 -1
- package/dist/types/src/segment/browser.d.ts.map +1 -1
- package/dist/types/src/segment/browser.js +8 -12
- package/dist/types/src/segment/browser.js.map +1 -1
- package/dist/types/src/segment/node.d.ts +1 -1
- package/dist/types/src/segment/node.d.ts.map +1 -1
- package/dist/types/src/segment/node.js +4 -3
- package/dist/types/src/segment/node.js.map +1 -1
- package/dist/types/src/sentry/browser.d.ts.map +1 -1
- package/dist/types/src/sentry/browser.js +5 -7
- package/dist/types/src/sentry/browser.js.map +1 -1
- package/dist/types/src/sentry/index.d.ts +1 -1
- package/dist/types/src/sentry/index.d.ts.map +1 -1
- package/dist/types/src/sentry/index.js +0 -1
- package/dist/types/src/sentry/index.js.map +1 -1
- package/dist/types/src/sentry/node.d.ts.map +1 -1
- package/dist/types/src/sentry/node.js +8 -13
- package/dist/types/src/sentry/node.js.map +1 -1
- package/dist/types/src/sentry/node.node.test.js +3 -5
- package/dist/types/src/sentry/node.node.test.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 +58 -63
- package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
- package/dist/types/src/sentry/sentry.node.test.js +1 -1
- package/dist/types/src/sentry/sentry.node.test.js.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +38 -34
- package/src/helpers/browser-observability.ts +2 -1
- package/src/helpers/map-spaces.ts +1 -1
- package/src/helpers/node-observability.ts +5 -4
- package/src/helpers/setup-telemetry-listeners.ts +2 -1
- package/src/observability.ts +4 -4
- package/src/otel/logs.ts +9 -7
- package/src/otel/metrics.ts +5 -12
- package/src/otel/otel.ts +1 -1
- package/src/otel/traces-browser.ts +23 -20
- package/src/otel/traces.ts +22 -19
- package/src/segment/base.ts +3 -3
- package/src/segment/browser.ts +5 -4
- package/src/segment/node.ts +5 -4
- package/src/sentry/browser.ts +8 -8
- package/src/sentry/index.ts +1 -1
- package/src/sentry/node.node.test.ts +2 -1
- package/src/sentry/node.ts +3 -3
- package/src/sentry/sentry-log-processor.ts +17 -7
- package/src/sentry/sentry.node.test.ts +2 -1
- package/dist/lib/browser/chunk-33TCMAUB.mjs.map +0 -7
- package/dist/lib/browser/chunk-5OQYI27L.mjs +0 -1
- package/dist/lib/browser/chunk-MWTIKIBZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-YEPQFAES.mjs.map +0 -7
- package/dist/lib/browser/observability-EEM6BEY6.mjs +0 -10
- package/dist/lib/browser/otel-IRDZ7PES.mjs.map +0 -7
- package/dist/lib/browser/sentry-log-processor-3F3SBJXM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-552KLA6Z.mjs +0 -202
- package/dist/lib/node-esm/chunk-552KLA6Z.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-EYW4X3O6.mjs.map +0 -7
- package/dist/lib/node-esm/observability-DAXZGOBS.mjs +0 -11
- package/dist/lib/node-esm/otel-62HYJETM.mjs.map +0 -7
- package/dist/lib/node-esm/sentry-log-processor-JAYRA23C.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-5OQYI27L.mjs.map → chunk-5ICT2XF2.mjs.map} +0 -0
- /package/dist/lib/browser/{observability-EEM6BEY6.mjs.map → chunk-U6JWT3E2.mjs.map} +0 -0
- /package/dist/lib/{node-esm/chunk-MRAK2H7O.mjs.map → browser/observability-XK652NZG.mjs.map} +0 -0
- /package/dist/lib/{node-esm/observability-DAXZGOBS.mjs.map → browser/otel/traces-browser.mjs.map} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TelemetryEvent
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5LN7D6GM.mjs";
|
|
4
4
|
|
|
5
5
|
// src/observability.ts
|
|
6
6
|
import { Event, scheduleTaskInterval } from "@dxos/async";
|
|
7
7
|
import { PublicKey } from "@dxos/client";
|
|
8
8
|
import { Context } from "@dxos/context";
|
|
9
9
|
import { invariant } from "@dxos/invariant";
|
|
10
|
-
import {
|
|
10
|
+
import { LogLevel, log } from "@dxos/log";
|
|
11
11
|
import { ConnectionState } from "@dxos/network-manager";
|
|
12
12
|
import { DeviceKind, Platform } from "@dxos/protocols/proto/dxos/client/services";
|
|
13
13
|
import { isNode } from "@dxos/util";
|
|
@@ -21,163 +21,6 @@ var cli_observability_secrets_default = {
|
|
|
21
21
|
OTEL_AUTHORIZATION: "Basic OTA3MzIzOmdsY19leUp2SWpvaU1URXdNVEl6TnlJc0ltNGlPaUp6ZEdGamF5MDVNRGN6TWpNdGFXNTBaV2R5WVhScGIyNHRZMnh2ZFdSbWJHRnlaUzF2ZEd4d0xYQnliM2g1SWl3aWF5STZJalZ2Tkd4cFYydE5iRmszTlRNMGJUVXpTemRTVjNBeVNpSXNJbTBpT25zaWNpSTZJbkJ5YjJRdGRYTXRaV0Z6ZEMwd0luMTk="
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
// src/helpers/browser-observability.ts
|
|
25
|
-
import * as localForage from "localforage";
|
|
26
|
-
import { log } from "@dxos/log";
|
|
27
|
-
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/helpers/browser-observability.ts";
|
|
28
|
-
var OBSERVABILITY_DISABLED_KEY = "observability-disabled";
|
|
29
|
-
var OBSERVABILITY_GROUP_KEY = "observability-group";
|
|
30
|
-
var isObservabilityDisabled = async (namespace) => {
|
|
31
|
-
try {
|
|
32
|
-
return await localForage.getItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`) === "true";
|
|
33
|
-
} catch (err) {
|
|
34
|
-
log.catch("Failed to check if observability is disabled, assuming it is", err, {
|
|
35
|
-
F: __dxlog_file,
|
|
36
|
-
L: 24,
|
|
37
|
-
S: void 0,
|
|
38
|
-
C: (f, a) => f(...a)
|
|
39
|
-
});
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
var storeObservabilityDisabled = async (namespace, value) => {
|
|
44
|
-
try {
|
|
45
|
-
await localForage.setItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`, String(value));
|
|
46
|
-
} catch (err) {
|
|
47
|
-
log.catch("Failed to store observability disabled", err, {
|
|
48
|
-
F: __dxlog_file,
|
|
49
|
-
L: 33,
|
|
50
|
-
S: void 0,
|
|
51
|
-
C: (f, a) => f(...a)
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
var getObservabilityGroup = async (namespace) => {
|
|
56
|
-
try {
|
|
57
|
-
return await localForage.getItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`) ?? void 0;
|
|
58
|
-
} catch (err) {
|
|
59
|
-
log.catch("Failed to get observability group", err, {
|
|
60
|
-
F: __dxlog_file,
|
|
61
|
-
L: 41,
|
|
62
|
-
S: void 0,
|
|
63
|
-
C: (f, a) => f(...a)
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
var storeObservabilityGroup = async (namespace, value) => {
|
|
68
|
-
try {
|
|
69
|
-
await localForage.setItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`, value);
|
|
70
|
-
} catch (err) {
|
|
71
|
-
log.catch("Failed to store observability group", err, {
|
|
72
|
-
F: __dxlog_file,
|
|
73
|
-
L: 49,
|
|
74
|
-
S: void 0,
|
|
75
|
-
C: (f, a) => f(...a)
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
var initializeAppObservability = async ({
|
|
80
|
-
namespace,
|
|
81
|
-
config,
|
|
82
|
-
// TODO(nf): Configure mode.
|
|
83
|
-
mode = "basic",
|
|
84
|
-
tracingEnable = false,
|
|
85
|
-
replayEnable = false
|
|
86
|
-
}) => {
|
|
87
|
-
log("initializeAppObservability", {
|
|
88
|
-
config
|
|
89
|
-
}, {
|
|
90
|
-
F: __dxlog_file,
|
|
91
|
-
L: 73,
|
|
92
|
-
S: void 0,
|
|
93
|
-
C: (f, a) => f(...a)
|
|
94
|
-
});
|
|
95
|
-
const group = await getObservabilityGroup(namespace) ?? void 0;
|
|
96
|
-
const release = `${namespace}@${config.get("runtime.app.build.version")}`;
|
|
97
|
-
const environment = config.get("runtime.app.env.DX_ENVIRONMENT");
|
|
98
|
-
const { Observability: Observability2 } = await import("./observability-EEM6BEY6.mjs");
|
|
99
|
-
const observability = new Observability2({
|
|
100
|
-
namespace,
|
|
101
|
-
release,
|
|
102
|
-
environment,
|
|
103
|
-
group,
|
|
104
|
-
mode,
|
|
105
|
-
config,
|
|
106
|
-
errorLog: {
|
|
107
|
-
sentryInitOptions: {
|
|
108
|
-
environment,
|
|
109
|
-
release,
|
|
110
|
-
tracing: tracingEnable,
|
|
111
|
-
replay: replayEnable,
|
|
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
|
|
115
|
-
sampleRate: 1,
|
|
116
|
-
replaySampleRate: 1,
|
|
117
|
-
replaySampleRateOnError: 1
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
const observabilityDisabled = await isObservabilityDisabled(namespace);
|
|
122
|
-
if (observabilityDisabled) {
|
|
123
|
-
observability.setMode("disabled");
|
|
124
|
-
log.info("observability disabled", void 0, {
|
|
125
|
-
F: __dxlog_file,
|
|
126
|
-
L: 113,
|
|
127
|
-
S: void 0,
|
|
128
|
-
C: (f, a) => f(...a)
|
|
129
|
-
});
|
|
130
|
-
return observability;
|
|
131
|
-
}
|
|
132
|
-
try {
|
|
133
|
-
const getIPData = async (config2) => {
|
|
134
|
-
const IP_DATA_CACHE_TIMEOUT = 6 * 60 * 60 * 1e3;
|
|
135
|
-
const cachedData = await localForage.getItem("dxos:observability:ipdata");
|
|
136
|
-
if (cachedData && cachedData.timestamp > Date.now() - IP_DATA_CACHE_TIMEOUT) {
|
|
137
|
-
return cachedData.data;
|
|
138
|
-
}
|
|
139
|
-
const IPDATA_API_KEY = config2.get("runtime.app.env.DX_IPDATA_API_KEY");
|
|
140
|
-
if (IPDATA_API_KEY) {
|
|
141
|
-
return fetch(`https://api.ipdata.co?api-key=${IPDATA_API_KEY}`).then((res) => res.json()).then((data) => {
|
|
142
|
-
localForage.setItem("dxos:observability:ipdata", {
|
|
143
|
-
data,
|
|
144
|
-
timestamp: Date.now()
|
|
145
|
-
}).catch((err) => observability.captureException(err));
|
|
146
|
-
return data;
|
|
147
|
-
}).catch((err) => observability.captureException(err));
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
await observability.initialize();
|
|
151
|
-
observability.startErrorLogs();
|
|
152
|
-
const ipData = await getIPData(config);
|
|
153
|
-
ipData && observability.setIPDataTelemetryTags(ipData);
|
|
154
|
-
if (typeof navigator !== "undefined" && navigator.storage?.estimate) {
|
|
155
|
-
setInterval(async () => {
|
|
156
|
-
try {
|
|
157
|
-
const storageEstimate = await navigator.storage.estimate();
|
|
158
|
-
storageEstimate.usage && observability.setTag("storageUsage", storageEstimate.usage.toString(), "telemetry");
|
|
159
|
-
storageEstimate.quota && observability.setTag("storageQuota", storageEstimate.quota.toString(), "telemetry");
|
|
160
|
-
} catch (error) {
|
|
161
|
-
log.warn("Failed to run estimate()", error, {
|
|
162
|
-
F: __dxlog_file,
|
|
163
|
-
L: 168,
|
|
164
|
-
S: void 0,
|
|
165
|
-
C: (f, a) => f(...a)
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}, 1e4);
|
|
169
|
-
}
|
|
170
|
-
} catch (err) {
|
|
171
|
-
log.error("Failed to initialize app observability", err, {
|
|
172
|
-
F: __dxlog_file,
|
|
173
|
-
L: 173,
|
|
174
|
-
S: void 0,
|
|
175
|
-
C: (f, a) => f(...a)
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
return observability;
|
|
179
|
-
};
|
|
180
|
-
|
|
181
24
|
// src/helpers/common.ts
|
|
182
25
|
var getTelemetryIdentifier = (client) => {
|
|
183
26
|
if (!client?.initialized) {
|
|
@@ -196,98 +39,6 @@ var getTelemetryIdentity = (client) => {
|
|
|
196
39
|
};
|
|
197
40
|
};
|
|
198
41
|
|
|
199
|
-
// src/helpers/node-observability.ts
|
|
200
|
-
import yaml from "js-yaml";
|
|
201
|
-
import { existsSync, statSync } from "@dxos/node-std/fs";
|
|
202
|
-
import { mkdir, readFile, writeFile } from "@dxos/node-std/fs/promises";
|
|
203
|
-
import { join } from "@dxos/node-std/path";
|
|
204
|
-
import { v4 as uuid, validate as validateUuid } from "uuid";
|
|
205
|
-
import { log as log2 } from "@dxos/log";
|
|
206
|
-
var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/helpers/node-observability.ts";
|
|
207
|
-
var showObservabilityBanner = async (configDir, bannercb) => {
|
|
208
|
-
const path = join(configDir, ".observability-banner-printed");
|
|
209
|
-
if (existsSync(path)) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
bannercb(
|
|
213
|
-
// eslint-disable-next-line no-multi-str
|
|
214
|
-
"Basic observability data will be sent to the DXOS team in order to improve the product. This includes performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices. To disable sending observability data, set the environment variable DX_DISABLE_OBSERVABILITY=true."
|
|
215
|
-
);
|
|
216
|
-
await writeFile(path, "", "utf-8");
|
|
217
|
-
};
|
|
218
|
-
var getObservabilityState = async (configDir) => {
|
|
219
|
-
if (existsSync(configDir)) {
|
|
220
|
-
if (!statSync(configDir).isDirectory()) {
|
|
221
|
-
throw new Error(`Config directory ${configDir} exists but is not a directory`);
|
|
222
|
-
}
|
|
223
|
-
} else {
|
|
224
|
-
await mkdir(configDir, {
|
|
225
|
-
recursive: true
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
const idPath = join(configDir, "observability.yml");
|
|
229
|
-
if (existsSync(idPath)) {
|
|
230
|
-
const context = await readFile(idPath, "utf-8");
|
|
231
|
-
return validate(context) ?? initializeState(idPath);
|
|
232
|
-
}
|
|
233
|
-
return initializeState(idPath);
|
|
234
|
-
};
|
|
235
|
-
var initializeState = async (idPath) => {
|
|
236
|
-
const observabilityState = {
|
|
237
|
-
installationId: uuid(),
|
|
238
|
-
group: process.env.DX_OBSERVABILITY_GROUP ?? void 0,
|
|
239
|
-
mode: process.env.DX_DISABLE_OBSERVABILITY ? "disabled" : process.env.DX_OBSERVABILITY_MODE ?? "basic"
|
|
240
|
-
};
|
|
241
|
-
await writeFile(idPath, "# This file is automatically generated by the @dxos/cli.\n" + yaml.dump(observabilityState), "utf-8");
|
|
242
|
-
return observabilityState;
|
|
243
|
-
};
|
|
244
|
-
var validate = (contextString) => {
|
|
245
|
-
const context = yaml.load(contextString);
|
|
246
|
-
if (Boolean(context.installationId) && validateUuid(context.installationId)) {
|
|
247
|
-
return {
|
|
248
|
-
...context,
|
|
249
|
-
mode: process.env.DX_DISABLE_OBSERVABILITY ? "disabled" : context.mode ?? "basic"
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
var initializeNodeObservability = async ({ namespace, version, config, installationId, group, mode = "basic", tracingEnable = true, replayEnable = true }) => {
|
|
254
|
-
log2("initializeCliObservability", {
|
|
255
|
-
config
|
|
256
|
-
}, {
|
|
257
|
-
F: __dxlog_file2,
|
|
258
|
-
L: 110,
|
|
259
|
-
S: void 0,
|
|
260
|
-
C: (f, a) => f(...a)
|
|
261
|
-
});
|
|
262
|
-
const release = `${namespace}@${version}`;
|
|
263
|
-
const environment = process.env.DX_ENVIRONMENT ?? "unknown";
|
|
264
|
-
const observability = new Observability({
|
|
265
|
-
mode,
|
|
266
|
-
namespace,
|
|
267
|
-
release,
|
|
268
|
-
environment,
|
|
269
|
-
group,
|
|
270
|
-
errorLog: {
|
|
271
|
-
sentryInitOptions: {
|
|
272
|
-
environment,
|
|
273
|
-
release,
|
|
274
|
-
// TODO(wittjosiah): Configure this.
|
|
275
|
-
sampleRate: 1
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
observability.setTag("installationId", installationId);
|
|
280
|
-
const IPDATA_API_KEY = config.get("runtime.app.env.DX_IPDATA_API_KEY");
|
|
281
|
-
try {
|
|
282
|
-
const res = await fetch(`https://api.ipdata.co/?api-key=${IPDATA_API_KEY}`);
|
|
283
|
-
const ipData = await res.json();
|
|
284
|
-
ipData && observability.setIPDataTelemetryTags(ipData);
|
|
285
|
-
} catch (err) {
|
|
286
|
-
observability?.captureException(err);
|
|
287
|
-
}
|
|
288
|
-
return observability;
|
|
289
|
-
};
|
|
290
|
-
|
|
291
42
|
// src/helpers/map-spaces.ts
|
|
292
43
|
var mapSpaces = (spaces, options = {
|
|
293
44
|
verbose: false,
|
|
@@ -306,7 +57,7 @@ var mapSpaces = (spaces, options = {
|
|
|
306
57
|
key: space.key.truncate(),
|
|
307
58
|
open: space.isOpen,
|
|
308
59
|
members: space.members.get().length,
|
|
309
|
-
objects: space.db.coreDatabase.getAllObjectIds().length,
|
|
60
|
+
objects: space.internal.db.coreDatabase.getAllObjectIds().length,
|
|
310
61
|
startup,
|
|
311
62
|
epoch,
|
|
312
63
|
// appliedEpoch,
|
|
@@ -319,113 +70,37 @@ var mapSpaces = (spaces, options = {
|
|
|
319
70
|
});
|
|
320
71
|
};
|
|
321
72
|
|
|
322
|
-
// src/helpers/setup-telemetry-listeners.ts
|
|
323
|
-
var lastFocusEvent = /* @__PURE__ */ new Date();
|
|
324
|
-
var totalTime = 0;
|
|
325
|
-
var setupTelemetryListeners = (namespace, client, observability) => {
|
|
326
|
-
const clickCallback = (event) => {
|
|
327
|
-
const id = event.target?.id;
|
|
328
|
-
if (!id) {
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
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
|
-
});
|
|
341
|
-
};
|
|
342
|
-
const focusCallback = () => {
|
|
343
|
-
const now = /* @__PURE__ */ new Date();
|
|
344
|
-
setTimeout(() => {
|
|
345
|
-
observability.track({
|
|
346
|
-
...getTelemetryIdentity(client),
|
|
347
|
-
action: "window.focus",
|
|
348
|
-
properties: {
|
|
349
|
-
timeAway: now.getTime() - lastFocusEvent.getTime()
|
|
350
|
-
}
|
|
351
|
-
});
|
|
352
|
-
});
|
|
353
|
-
lastFocusEvent = now;
|
|
354
|
-
};
|
|
355
|
-
const blurCallback = () => {
|
|
356
|
-
const now = /* @__PURE__ */ new Date();
|
|
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
|
-
});
|
|
367
|
-
lastFocusEvent = now;
|
|
368
|
-
totalTime = totalTime + duration;
|
|
369
|
-
};
|
|
370
|
-
const unloadCallback = () => {
|
|
371
|
-
setTimeout(() => {
|
|
372
|
-
observability.track({
|
|
373
|
-
...getTelemetryIdentity(client),
|
|
374
|
-
action: "page.unload",
|
|
375
|
-
properties: {
|
|
376
|
-
duration: totalTime
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
});
|
|
380
|
-
};
|
|
381
|
-
const errorCallback = (event) => {
|
|
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
|
-
});
|
|
394
|
-
};
|
|
395
|
-
window.addEventListener("click", clickCallback, true);
|
|
396
|
-
window.addEventListener("focus", focusCallback);
|
|
397
|
-
window.addEventListener("blur", blurCallback);
|
|
398
|
-
window.addEventListener("beforeunload", unloadCallback);
|
|
399
|
-
window.addEventListener("error", errorCallback);
|
|
400
|
-
return () => {
|
|
401
|
-
window.removeEventListener("click", clickCallback, true);
|
|
402
|
-
window.removeEventListener("focus", focusCallback);
|
|
403
|
-
window.removeEventListener("blur", blurCallback);
|
|
404
|
-
window.removeEventListener("beforeunload", unloadCallback);
|
|
405
|
-
window.removeEventListener("error", errorCallback);
|
|
406
|
-
};
|
|
407
|
-
};
|
|
408
|
-
|
|
409
73
|
// src/observability.ts
|
|
410
|
-
var
|
|
74
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/observability.ts";
|
|
411
75
|
var SPACE_METRICS_MIN_INTERVAL = 1e3 * 60;
|
|
412
76
|
var SPACE_TELEMETRY_MIN_INTERVAL = 1e3 * 60 * 60;
|
|
413
77
|
var NETWORK_METRICS_MIN_INTERVAL = 1e3 * 60 * 5;
|
|
414
78
|
var Observability = class {
|
|
79
|
+
_mode;
|
|
80
|
+
_namespace;
|
|
81
|
+
_config;
|
|
82
|
+
_group;
|
|
83
|
+
_secrets;
|
|
84
|
+
_tags = /* @__PURE__ */ new Map();
|
|
85
|
+
// TODO(wittjosiah): Generic metrics interface.
|
|
86
|
+
_otelMetrics;
|
|
87
|
+
_otelTraces;
|
|
88
|
+
// TODO(wittjosiah): Generic telemetry interface.
|
|
89
|
+
_telemetryBatchSize;
|
|
90
|
+
_telemetry;
|
|
91
|
+
// TODO(wittjosiah): Generic error logging interface.
|
|
92
|
+
_sentryLogProcessor;
|
|
93
|
+
_otelLogs;
|
|
94
|
+
_errorReportingOptions;
|
|
95
|
+
_captureException;
|
|
96
|
+
_captureUserFeedback;
|
|
97
|
+
_lastNetworkStatus;
|
|
98
|
+
_ctx = new Context(void 0, {
|
|
99
|
+
F: __dxlog_file,
|
|
100
|
+
L: 115
|
|
101
|
+
});
|
|
415
102
|
// TODO(nf): make platform a required extension?
|
|
416
103
|
constructor({ mode, namespace, environment, release, config, group, secrets, telemetry, errorLog }) {
|
|
417
|
-
this._tags = /* @__PURE__ */ new Map();
|
|
418
|
-
this._ctx = new Context(void 0, {
|
|
419
|
-
F: __dxlog_file3,
|
|
420
|
-
L: 115
|
|
421
|
-
});
|
|
422
|
-
this.setIPDataTelemetryTags = (ipData) => {
|
|
423
|
-
this.setTag("city", ipData.city, "telemetry");
|
|
424
|
-
this.setTag("region", ipData.region, "telemetry");
|
|
425
|
-
this.setTag("country", ipData.country, "telemetry");
|
|
426
|
-
ipData.latitude && this.setTag("latitude", ipData.latitude.toString(), "telemetry");
|
|
427
|
-
ipData.longitude && this.setTag("longitude", ipData.longitude.toString(), "telemetry");
|
|
428
|
-
};
|
|
429
104
|
this._mode = mode;
|
|
430
105
|
this._namespace = namespace;
|
|
431
106
|
this._config = config;
|
|
@@ -464,11 +139,11 @@ var Observability = class {
|
|
|
464
139
|
process.env.DX_OTEL_AUTHORIZATION && (mergedSecrets.OTEL_AUTHORIZATION = process.env.DX_OTEL_AUTHORIZATION);
|
|
465
140
|
return mergedSecrets;
|
|
466
141
|
} else {
|
|
467
|
-
|
|
142
|
+
log("config", {
|
|
468
143
|
rtc: this._secrets,
|
|
469
144
|
config
|
|
470
145
|
}, {
|
|
471
|
-
F:
|
|
146
|
+
F: __dxlog_file,
|
|
472
147
|
L: 176,
|
|
473
148
|
S: this,
|
|
474
149
|
C: (f, a) => f(...a)
|
|
@@ -486,8 +161,8 @@ var Observability = class {
|
|
|
486
161
|
}
|
|
487
162
|
}
|
|
488
163
|
async initialize() {
|
|
489
|
-
|
|
490
|
-
F:
|
|
164
|
+
log("initializing...", void 0, {
|
|
165
|
+
F: __dxlog_file,
|
|
491
166
|
L: 191,
|
|
492
167
|
S: this,
|
|
493
168
|
C: (f, a) => f(...a)
|
|
@@ -499,8 +174,8 @@ var Observability = class {
|
|
|
499
174
|
await this._initTraces();
|
|
500
175
|
}
|
|
501
176
|
async close() {
|
|
502
|
-
|
|
503
|
-
F:
|
|
177
|
+
log("closing...", void 0, {
|
|
178
|
+
F: __dxlog_file,
|
|
504
179
|
L: 200,
|
|
505
180
|
S: this,
|
|
506
181
|
C: (f, a) => f(...a)
|
|
@@ -515,6 +190,11 @@ var Observability = class {
|
|
|
515
190
|
setMode(mode) {
|
|
516
191
|
this._mode = mode;
|
|
517
192
|
}
|
|
193
|
+
//
|
|
194
|
+
// Tags
|
|
195
|
+
//
|
|
196
|
+
/** Callback (e.g., to share tags with Sentry.) */
|
|
197
|
+
_setTag;
|
|
518
198
|
/**
|
|
519
199
|
* camelCase keys are converted to snake_case in Segment.
|
|
520
200
|
*/
|
|
@@ -541,10 +221,10 @@ var Observability = class {
|
|
|
541
221
|
if (clientServices.IdentityService) {
|
|
542
222
|
clientServices.IdentityService.queryIdentity().subscribe((idqr) => {
|
|
543
223
|
if (!idqr?.identity?.did) {
|
|
544
|
-
|
|
224
|
+
log("empty response from identity service", {
|
|
545
225
|
idqr
|
|
546
226
|
}, {
|
|
547
|
-
F:
|
|
227
|
+
F: __dxlog_file,
|
|
548
228
|
L: 247,
|
|
549
229
|
S: this,
|
|
550
230
|
C: (f, a) => f(...a)
|
|
@@ -560,10 +240,10 @@ var Observability = class {
|
|
|
560
240
|
if (clientServices.DevicesService) {
|
|
561
241
|
clientServices.DevicesService.queryDevices().subscribe((dqr) => {
|
|
562
242
|
if (!dqr || !dqr.devices || dqr.devices.length === 0) {
|
|
563
|
-
|
|
243
|
+
log("empty response from device service", {
|
|
564
244
|
device: dqr
|
|
565
245
|
}, {
|
|
566
|
-
F:
|
|
246
|
+
F: __dxlog_file,
|
|
567
247
|
L: 259,
|
|
568
248
|
S: this,
|
|
569
249
|
C: (f, a) => f(...a)
|
|
@@ -571,7 +251,7 @@ var Observability = class {
|
|
|
571
251
|
return;
|
|
572
252
|
}
|
|
573
253
|
invariant(dqr, "empty response from device service", {
|
|
574
|
-
F:
|
|
254
|
+
F: __dxlog_file,
|
|
575
255
|
L: 263,
|
|
576
256
|
S: this,
|
|
577
257
|
A: [
|
|
@@ -581,10 +261,10 @@ var Observability = class {
|
|
|
581
261
|
});
|
|
582
262
|
const thisDevice = dqr.devices.find((device) => device.kind === DeviceKind.CURRENT);
|
|
583
263
|
if (!thisDevice) {
|
|
584
|
-
|
|
264
|
+
log("no current device", {
|
|
585
265
|
device: dqr
|
|
586
266
|
}, {
|
|
587
|
-
F:
|
|
267
|
+
F: __dxlog_file,
|
|
588
268
|
L: 266,
|
|
589
269
|
S: this,
|
|
590
270
|
C: (f, a) => f(...a)
|
|
@@ -598,12 +278,19 @@ var Observability = class {
|
|
|
598
278
|
});
|
|
599
279
|
}
|
|
600
280
|
}
|
|
281
|
+
setIPDataTelemetryTags = (ipData) => {
|
|
282
|
+
this.setTag("city", ipData.city, "telemetry");
|
|
283
|
+
this.setTag("region", ipData.region, "telemetry");
|
|
284
|
+
this.setTag("country", ipData.country, "telemetry");
|
|
285
|
+
ipData.latitude && this.setTag("latitude", ipData.latitude.toString(), "telemetry");
|
|
286
|
+
ipData.longitude && this.setTag("longitude", ipData.longitude.toString(), "telemetry");
|
|
287
|
+
};
|
|
601
288
|
//
|
|
602
289
|
// Logs
|
|
603
290
|
//
|
|
604
291
|
async _initLogs() {
|
|
605
292
|
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== "disabled") {
|
|
606
|
-
const { OtelLogs } = await import("./otel-
|
|
293
|
+
const { OtelLogs } = await import("./otel-DI4ASU7Y.mjs");
|
|
607
294
|
this._otelLogs = new OtelLogs({
|
|
608
295
|
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
609
296
|
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
@@ -618,18 +305,18 @@ var Observability = class {
|
|
|
618
305
|
logLevel: LogLevel.VERBOSE,
|
|
619
306
|
includeSharedWorkerLogs: false
|
|
620
307
|
});
|
|
621
|
-
this._otelLogs &&
|
|
622
|
-
|
|
308
|
+
this._otelLogs && log.runtimeConfig.processors.push(this._otelLogs.logProcessor);
|
|
309
|
+
log("otel logs enabled", {
|
|
623
310
|
namespace: this._namespace
|
|
624
311
|
}, {
|
|
625
|
-
F:
|
|
312
|
+
F: __dxlog_file,
|
|
626
313
|
L: 310,
|
|
627
314
|
S: this,
|
|
628
315
|
C: (f, a) => f(...a)
|
|
629
316
|
});
|
|
630
317
|
} else {
|
|
631
|
-
|
|
632
|
-
F:
|
|
318
|
+
log("otel logs disabled", void 0, {
|
|
319
|
+
F: __dxlog_file,
|
|
633
320
|
L: 312,
|
|
634
321
|
S: this,
|
|
635
322
|
C: (f, a) => f(...a)
|
|
@@ -641,7 +328,7 @@ var Observability = class {
|
|
|
641
328
|
//
|
|
642
329
|
async _initMetrics() {
|
|
643
330
|
if (this.enabled && this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION) {
|
|
644
|
-
const { OtelMetrics } = await import("./otel-
|
|
331
|
+
const { OtelMetrics } = await import("./otel-DI4ASU7Y.mjs");
|
|
645
332
|
this._otelMetrics = new OtelMetrics({
|
|
646
333
|
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
647
334
|
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
@@ -654,15 +341,15 @@ var Observability = class {
|
|
|
654
341
|
value.value
|
|
655
342
|
]))
|
|
656
343
|
});
|
|
657
|
-
|
|
658
|
-
F:
|
|
344
|
+
log("otel metrics enabled", void 0, {
|
|
345
|
+
F: __dxlog_file,
|
|
659
346
|
L: 337,
|
|
660
347
|
S: this,
|
|
661
348
|
C: (f, a) => f(...a)
|
|
662
349
|
});
|
|
663
350
|
} else {
|
|
664
|
-
|
|
665
|
-
F:
|
|
351
|
+
log("otel metrics disabled", void 0, {
|
|
352
|
+
F: __dxlog_file,
|
|
666
353
|
L: 339,
|
|
667
354
|
S: this,
|
|
668
355
|
C: (f, a) => f(...a)
|
|
@@ -684,8 +371,8 @@ var Observability = class {
|
|
|
684
371
|
}
|
|
685
372
|
const updateSignalMetrics = new Event().debounce(NETWORK_METRICS_MIN_INTERVAL);
|
|
686
373
|
updateSignalMetrics.on(this._ctx, async () => {
|
|
687
|
-
|
|
688
|
-
F:
|
|
374
|
+
log("send signal metrics", void 0, {
|
|
375
|
+
F: __dxlog_file,
|
|
689
376
|
L: 361,
|
|
690
377
|
S: this,
|
|
691
378
|
C: (f, a) => f(...a)
|
|
@@ -736,8 +423,8 @@ var Observability = class {
|
|
|
736
423
|
this._ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
737
424
|
const updateSpaceMetrics = new Event().debounce(SPACE_METRICS_MIN_INTERVAL);
|
|
738
425
|
updateSpaceMetrics.on(this._ctx, async () => {
|
|
739
|
-
|
|
740
|
-
F:
|
|
426
|
+
log("send space metrics", void 0, {
|
|
427
|
+
F: __dxlog_file,
|
|
741
428
|
L: 414,
|
|
742
429
|
S: this,
|
|
743
430
|
C: (f, a) => f(...a)
|
|
@@ -761,8 +448,8 @@ var Observability = class {
|
|
|
761
448
|
});
|
|
762
449
|
const updateSpaceTelemetry = new Event().debounce(SPACE_TELEMETRY_MIN_INTERVAL);
|
|
763
450
|
updateSpaceTelemetry.on(this._ctx, async () => {
|
|
764
|
-
|
|
765
|
-
F:
|
|
451
|
+
log("send space telemetry", void 0, {
|
|
452
|
+
F: __dxlog_file,
|
|
766
453
|
L: 425,
|
|
767
454
|
S: this,
|
|
768
455
|
C: (f, a) => f(...a)
|
|
@@ -799,7 +486,7 @@ var Observability = class {
|
|
|
799
486
|
async startRuntimeMetrics(client, frequency = NETWORK_METRICS_MIN_INTERVAL) {
|
|
800
487
|
const platform = await client.services.services.SystemService?.getPlatform();
|
|
801
488
|
invariant(platform, "platform is required", {
|
|
802
|
-
F:
|
|
489
|
+
F: __dxlog_file,
|
|
803
490
|
L: 463,
|
|
804
491
|
S: this,
|
|
805
492
|
A: [
|
|
@@ -834,10 +521,10 @@ var Observability = class {
|
|
|
834
521
|
this.gauge("dxos.client.services.runtime.heapTotal", platform2.memory.heapTotal);
|
|
835
522
|
this.gauge("dxos.client.services.runtime.heapUsed", platform2.memory.heapUsed);
|
|
836
523
|
}
|
|
837
|
-
}).catch((error) =>
|
|
524
|
+
}).catch((error) => log("platform error", {
|
|
838
525
|
error
|
|
839
526
|
}, {
|
|
840
|
-
F:
|
|
527
|
+
F: __dxlog_file,
|
|
841
528
|
L: 497,
|
|
842
529
|
S: this,
|
|
843
530
|
C: (f, a) => f(...a)
|
|
@@ -861,8 +548,8 @@ var Observability = class {
|
|
|
861
548
|
]))
|
|
862
549
|
});
|
|
863
550
|
} else {
|
|
864
|
-
|
|
865
|
-
F:
|
|
551
|
+
log("segment disabled", void 0, {
|
|
552
|
+
F: __dxlog_file,
|
|
866
553
|
L: 523,
|
|
867
554
|
S: this,
|
|
868
555
|
C: (f, a) => f(...a)
|
|
@@ -889,15 +576,15 @@ var Observability = class {
|
|
|
889
576
|
async _initErrorLogs() {
|
|
890
577
|
if (this._secrets.SENTRY_DESTINATION && this._mode !== "disabled") {
|
|
891
578
|
const { captureException, captureUserFeedback, init, setTag } = await import("./sentry/index.mjs");
|
|
892
|
-
const { SentryLogProcessor } = await import("./sentry-log-processor-
|
|
579
|
+
const { SentryLogProcessor } = await import("./sentry-log-processor-W7LI6WXA.mjs");
|
|
893
580
|
this._captureException = captureException;
|
|
894
581
|
this._captureUserFeedback = captureUserFeedback;
|
|
895
582
|
this._setTag = setTag;
|
|
896
|
-
|
|
583
|
+
log.info("Initializing Sentry", {
|
|
897
584
|
dest: this._secrets.SENTRY_DESTINATION,
|
|
898
585
|
options: this._errorReportingOptions
|
|
899
586
|
}, {
|
|
900
|
-
F:
|
|
587
|
+
F: __dxlog_file,
|
|
901
588
|
L: 556,
|
|
902
589
|
S: this,
|
|
903
590
|
C: (f, a) => f(...a)
|
|
@@ -915,8 +602,8 @@ var Observability = class {
|
|
|
915
602
|
}
|
|
916
603
|
});
|
|
917
604
|
} else {
|
|
918
|
-
|
|
919
|
-
F:
|
|
605
|
+
log("sentry disabled", void 0, {
|
|
606
|
+
F: __dxlog_file,
|
|
920
607
|
L: 576,
|
|
921
608
|
S: this,
|
|
922
609
|
C: (f, a) => f(...a)
|
|
@@ -924,7 +611,7 @@ var Observability = class {
|
|
|
924
611
|
}
|
|
925
612
|
}
|
|
926
613
|
startErrorLogs() {
|
|
927
|
-
this._sentryLogProcessor &&
|
|
614
|
+
this._sentryLogProcessor && log.runtimeConfig.processors.push(this._sentryLogProcessor.logProcessor);
|
|
928
615
|
}
|
|
929
616
|
startTraces() {
|
|
930
617
|
this._otelTraces && this._otelTraces.start();
|
|
@@ -932,7 +619,7 @@ var Observability = class {
|
|
|
932
619
|
// TODO(nf): Refactor init based on providers and their capabilities.
|
|
933
620
|
async _initTraces() {
|
|
934
621
|
if (this._secrets.OTEL_ENDPOINT && this._secrets.OTEL_AUTHORIZATION && this._mode !== "disabled") {
|
|
935
|
-
const { OtelTraces } = await import("./otel-
|
|
622
|
+
const { OtelTraces } = await import("./otel-DI4ASU7Y.mjs");
|
|
936
623
|
this._otelTraces = new OtelTraces({
|
|
937
624
|
endpoint: this._secrets.OTEL_ENDPOINT,
|
|
938
625
|
authorizationHeader: this._secrets.OTEL_AUTHORIZATION,
|
|
@@ -962,10 +649,10 @@ var Observability = class {
|
|
|
962
649
|
*/
|
|
963
650
|
captureUserFeedback(message) {
|
|
964
651
|
if (!this._secrets.SENTRY_DESTINATION) {
|
|
965
|
-
|
|
652
|
+
log.info("Feedback submitted without Sentry destination", {
|
|
966
653
|
message
|
|
967
654
|
}, {
|
|
968
|
-
F:
|
|
655
|
+
F: __dxlog_file,
|
|
969
656
|
L: 625,
|
|
970
657
|
S: this,
|
|
971
658
|
C: (f, a) => f(...a)
|
|
@@ -978,19 +665,8 @@ var Observability = class {
|
|
|
978
665
|
|
|
979
666
|
export {
|
|
980
667
|
Observability,
|
|
981
|
-
OBSERVABILITY_DISABLED_KEY,
|
|
982
|
-
OBSERVABILITY_GROUP_KEY,
|
|
983
|
-
isObservabilityDisabled,
|
|
984
|
-
storeObservabilityDisabled,
|
|
985
|
-
getObservabilityGroup,
|
|
986
|
-
storeObservabilityGroup,
|
|
987
|
-
initializeAppObservability,
|
|
988
668
|
getTelemetryIdentifier,
|
|
989
669
|
getTelemetryIdentity,
|
|
990
|
-
|
|
991
|
-
getObservabilityState,
|
|
992
|
-
initializeNodeObservability,
|
|
993
|
-
mapSpaces,
|
|
994
|
-
setupTelemetryListeners
|
|
670
|
+
mapSpaces
|
|
995
671
|
};
|
|
996
|
-
//# sourceMappingURL=chunk-
|
|
672
|
+
//# sourceMappingURL=chunk-JJQT5TQH.mjs.map
|