@dxos/observability 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393
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-K4VFBKST.mjs → chunk-PSFTIG54.mjs} +9 -2
- package/dist/lib/browser/chunk-PSFTIG54.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +52 -195
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{log-processor-A6PJG6CM.mjs → log-processor-HPHWNBOK.mjs} +1 -1
- package/dist/lib/browser/{log-processor-A6PJG6CM.mjs.map → log-processor-HPHWNBOK.mjs.map} +2 -2
- package/dist/lib/browser/{logs-ATTRIUTL.mjs → logs-UTNIFYHF.mjs} +7 -4
- package/dist/lib/browser/logs-UTNIFYHF.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{metrics-PKTV6IGF.mjs → metrics-PRGSYAZJ.mjs} +7 -21
- package/dist/lib/browser/metrics-PRGSYAZJ.mjs.map +7 -0
- package/dist/lib/browser/{traces-browser-Y4FFWRIR.mjs → traces-browser-XRINKQUA.mjs} +8 -20
- package/dist/lib/browser/traces-browser-XRINKQUA.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FEVP3MK4.mjs → chunk-EDDZWPYV.mjs} +9 -2
- package/dist/lib/node-esm/chunk-EDDZWPYV.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +47 -165
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{log-processor-4TIHN5KN.mjs → log-processor-ZODHERST.mjs} +1 -1
- package/dist/lib/node-esm/{log-processor-4TIHN5KN.mjs.map → log-processor-ZODHERST.mjs.map} +2 -2
- package/dist/lib/node-esm/{logs-7J45KLM7.mjs → logs-ARJUVN3T.mjs} +7 -4
- package/dist/lib/node-esm/logs-ARJUVN3T.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{metrics-H7DDLYSG.mjs → metrics-DREJOOAC.mjs} +7 -21
- package/dist/lib/node-esm/metrics-DREJOOAC.mjs.map +7 -0
- package/dist/lib/node-esm/{traces-NPNTEOS6.mjs → traces-74F7JUKF.mjs} +8 -20
- package/dist/lib/node-esm/traces-74F7JUKF.mjs.map +7 -0
- package/dist/types/src/extensions/otel/extension.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/extension.js +14 -9
- package/dist/types/src/extensions/otel/extension.js.map +1 -1
- package/dist/types/src/extensions/otel/logs.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/logs.js +6 -3
- package/dist/types/src/extensions/otel/logs.js.map +1 -1
- package/dist/types/src/extensions/otel/metrics.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/metrics.js +2 -2
- package/dist/types/src/extensions/otel/metrics.js.map +1 -1
- package/dist/types/src/extensions/otel/otel.d.ts +7 -0
- package/dist/types/src/extensions/otel/otel.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/otel.js +12 -0
- package/dist/types/src/extensions/otel/otel.js.map +1 -1
- package/dist/types/src/extensions/otel/span-processors.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/span-processors.js.map +1 -1
- package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/traces-browser.js +2 -1
- package/dist/types/src/extensions/otel/traces-browser.js.map +1 -1
- package/dist/types/src/extensions/otel/traces.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/traces.js +2 -1
- package/dist/types/src/extensions/otel/traces.js.map +1 -1
- package/dist/types/src/extensions/posthog/extension.d.ts +13 -3
- package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -1
- package/dist/types/src/extensions/posthog/extension.js +7 -7
- package/dist/types/src/extensions/posthog/extension.js.map +1 -1
- package/dist/types/src/extensions/posthog/log-processor.test.js.map +1 -1
- package/dist/types/src/observability.d.ts.map +1 -1
- package/dist/types/src/providers/client-observability.d.ts.map +1 -1
- package/dist/types/src/providers/client-observability.js +2 -0
- package/dist/types/src/providers/client-observability.js.map +1 -1
- package/dist/types/src/providers/ip-data.d.ts.map +1 -1
- package/dist/types/src/storage/browser.d.ts.map +1 -1
- package/dist/types/src/storage/node.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -17
- package/src/extensions/otel/extension.ts +15 -9
- package/src/extensions/otel/logs.ts +6 -3
- package/src/extensions/otel/metrics.ts +2 -2
- package/src/extensions/otel/otel.ts +13 -0
- package/src/extensions/otel/traces-browser.ts +2 -2
- package/src/extensions/otel/traces.ts +2 -2
- package/src/extensions/posthog/extension.ts +21 -9
- package/src/providers/client-observability.ts +2 -0
- package/dist/lib/browser/chunk-K4VFBKST.mjs.map +0 -7
- package/dist/lib/browser/logs-ATTRIUTL.mjs.map +0 -7
- package/dist/lib/browser/metrics-PKTV6IGF.mjs.map +0 -7
- package/dist/lib/browser/traces-browser-Y4FFWRIR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-FEVP3MK4.mjs.map +0 -7
- package/dist/lib/node-esm/logs-7J45KLM7.mjs.map +0 -7
- package/dist/lib/node-esm/metrics-H7DDLYSG.mjs.map +0 -7
- package/dist/lib/node-esm/traces-NPNTEOS6.mjs.map +0 -7
|
@@ -6,8 +6,15 @@ var setDiagLogger = (level) => {
|
|
|
6
6
|
diag.setLogger(new DiagConsoleLogger(), logLevel);
|
|
7
7
|
}
|
|
8
8
|
};
|
|
9
|
+
var resolveOtlpUrl = (url) => {
|
|
10
|
+
if (typeof window !== "undefined" && url.startsWith("/")) {
|
|
11
|
+
return new URL(url, window.location.origin).toString();
|
|
12
|
+
}
|
|
13
|
+
return url;
|
|
14
|
+
};
|
|
9
15
|
|
|
10
16
|
export {
|
|
11
|
-
setDiagLogger
|
|
17
|
+
setDiagLogger,
|
|
18
|
+
resolveOtlpUrl
|
|
12
19
|
};
|
|
13
|
-
//# sourceMappingURL=chunk-
|
|
20
|
+
//# sourceMappingURL=chunk-PSFTIG54.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extensions/otel/otel.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';\nimport { type Resource } from '@opentelemetry/resources';\n\nexport type OtelOptions = {\n endpoint: string;\n headers: Record<string, string>;\n resource: Resource;\n getTags: () => { [key: string]: string };\n consoleDiagLogLevel?: string;\n};\n\nexport const setDiagLogger = (level?: string) => {\n const logLevel = DiagLogLevel[level as keyof typeof DiagLogLevel];\n if (logLevel) {\n diag.setLogger(new DiagConsoleLogger(), logLevel);\n }\n};\n\n/**\n * Resolve a possibly-relative OTLP exporter URL to an absolute URL.\n * The OpenTelemetry browser HTTP exporter validates user-provided URLs with `new URL(url)`,\n * which throws on relative paths like `/api/otel/v1/logs`. In a browser context we resolve\n * against `window.location.origin`; outside the browser we return the input unchanged.\n */\nexport const resolveOtlpUrl = (url: string): string => {\n if (typeof window !== 'undefined' && url.startsWith('/')) {\n return new URL(url, window.location.origin).toString();\n }\n return url;\n};\n"],
|
|
5
|
+
"mappings": ";AAIA,SAASA,mBAAmBC,cAAcC,YAAY;AAW/C,IAAMC,gBAAgB,CAACC,UAAAA;AAC5B,QAAMC,WAAWJ,aAAaG,KAAAA;AAC9B,MAAIC,UAAU;AACZH,SAAKI,UAAU,IAAIN,kBAAAA,GAAqBK,QAAAA;EAC1C;AACF;AAQO,IAAME,iBAAiB,CAACC,QAAAA;AAC7B,MAAI,OAAOC,WAAW,eAAeD,IAAIE,WAAW,GAAA,GAAM;AACxD,WAAO,IAAIC,IAAIH,KAAKC,OAAOG,SAASC,MAAM,EAAEC,SAAQ;EACtD;AACA,SAAON;AACT;",
|
|
6
|
+
"names": ["DiagConsoleLogger", "DiagLogLevel", "diag", "setDiagLogger", "level", "logLevel", "setLogger", "resolveOtlpUrl", "url", "window", "startsWith", "URL", "location", "origin", "toString"]
|
|
7
|
+
}
|
|
@@ -30,23 +30,13 @@ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/storage/browse
|
|
|
30
30
|
var OBSERVABILITY_DISABLED_KEY = "observability-disabled";
|
|
31
31
|
var OBSERVABILITY_GROUP_KEY = "observability-group";
|
|
32
32
|
var showObservabilityBanner = () => {
|
|
33
|
-
log.warn("showObservabilityBanner is not supported in browser contexts.", void 0, {
|
|
34
|
-
F: __dxlog_file,
|
|
35
|
-
L: 16,
|
|
36
|
-
S: void 0,
|
|
37
|
-
C: (f, a) => f(...a)
|
|
38
|
-
});
|
|
33
|
+
log.warn("showObservabilityBanner is not supported in browser contexts.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 11, S: void 0 });
|
|
39
34
|
};
|
|
40
35
|
var isObservabilityDisabled = async (namespace) => {
|
|
41
36
|
try {
|
|
42
37
|
return await localForage.getItem(compositeKey(namespace, OBSERVABILITY_DISABLED_KEY)) === "true";
|
|
43
38
|
} catch (err) {
|
|
44
|
-
log.catch("Failed to check if observability is disabled, assuming it is", err, {
|
|
45
|
-
F: __dxlog_file,
|
|
46
|
-
L: 26,
|
|
47
|
-
S: void 0,
|
|
48
|
-
C: (f, a) => f(...a)
|
|
49
|
-
});
|
|
39
|
+
log.catch("Failed to check if observability is disabled, assuming it is", err, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 19, S: void 0 });
|
|
50
40
|
return true;
|
|
51
41
|
}
|
|
52
42
|
};
|
|
@@ -54,12 +44,7 @@ var storeObservabilityDisabled = async (namespace, value2) => {
|
|
|
54
44
|
try {
|
|
55
45
|
await localForage.setItem(compositeKey(namespace, OBSERVABILITY_DISABLED_KEY), String(value2));
|
|
56
46
|
} catch (err) {
|
|
57
|
-
log.catch("Failed to store observability disabled", err, {
|
|
58
|
-
F: __dxlog_file,
|
|
59
|
-
L: 38,
|
|
60
|
-
S: void 0,
|
|
61
|
-
C: (f, a) => f(...a)
|
|
62
|
-
});
|
|
47
|
+
log.catch("Failed to store observability disabled", err, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 29, S: void 0 });
|
|
63
48
|
}
|
|
64
49
|
try {
|
|
65
50
|
if (typeof localStorage !== "undefined") {
|
|
@@ -72,24 +57,14 @@ var getObservabilityGroup = async (namespace) => {
|
|
|
72
57
|
try {
|
|
73
58
|
return await localForage.getItem(compositeKey(namespace, OBSERVABILITY_GROUP_KEY)) ?? void 0;
|
|
74
59
|
} catch (err) {
|
|
75
|
-
log.catch("Failed to get observability group", err, {
|
|
76
|
-
F: __dxlog_file,
|
|
77
|
-
L: 58,
|
|
78
|
-
S: void 0,
|
|
79
|
-
C: (f, a) => f(...a)
|
|
80
|
-
});
|
|
60
|
+
log.catch("Failed to get observability group", err, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 47, S: void 0 });
|
|
81
61
|
}
|
|
82
62
|
};
|
|
83
63
|
var storeObservabilityGroup = async (namespace, value2) => {
|
|
84
64
|
try {
|
|
85
65
|
await localForage.setItem(compositeKey(namespace, OBSERVABILITY_GROUP_KEY), value2);
|
|
86
66
|
} catch (err) {
|
|
87
|
-
log.catch("Failed to store observability group", err, {
|
|
88
|
-
F: __dxlog_file,
|
|
89
|
-
L: 69,
|
|
90
|
-
S: void 0,
|
|
91
|
-
C: (f, a) => f(...a)
|
|
92
|
-
});
|
|
67
|
+
log.catch("Failed to store observability group", err, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 56, S: void 0 });
|
|
93
68
|
}
|
|
94
69
|
};
|
|
95
70
|
|
|
@@ -116,12 +91,7 @@ var ObservabilityImpl = class {
|
|
|
116
91
|
this._subscriptions.add(...cleanups.filter((cleanup) => cleanup !== void 0));
|
|
117
92
|
this._initialized = true;
|
|
118
93
|
}).pipe(Effect.catchAll((error) => Effect.gen(this, function* () {
|
|
119
|
-
log2.catch(error, void 0, {
|
|
120
|
-
F: __dxlog_file2,
|
|
121
|
-
L: 85,
|
|
122
|
-
S: this,
|
|
123
|
-
C: (f, a) => f(...a)
|
|
124
|
-
});
|
|
94
|
+
log2.catch(error, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 32, S: this });
|
|
125
95
|
for (const extension of initializedExtensions) {
|
|
126
96
|
if (extension.close) {
|
|
127
97
|
yield* extension.close().pipe(Effect.catchAll(() => Effect.succeed(void 0)));
|
|
@@ -170,27 +140,11 @@ var ObservabilityImpl = class {
|
|
|
170
140
|
});
|
|
171
141
|
}
|
|
172
142
|
_addExtension(extension) {
|
|
173
|
-
invariant(!this._initialized, "Observability is already initialized", {
|
|
174
|
-
F: __dxlog_file2,
|
|
175
|
-
L: 142,
|
|
176
|
-
S: this,
|
|
177
|
-
A: [
|
|
178
|
-
"!this._initialized",
|
|
179
|
-
"'Observability is already initialized'"
|
|
180
|
-
]
|
|
181
|
-
});
|
|
143
|
+
invariant(!this._initialized, "Observability is already initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 82, S: this, A: ["!this._initialized", "'Observability is already initialized'"] });
|
|
182
144
|
this._extensions.push(extension);
|
|
183
145
|
}
|
|
184
146
|
_addDataProvider(dataProvider) {
|
|
185
|
-
invariant(!this._initialized, "Observability is already initialized", {
|
|
186
|
-
F: __dxlog_file2,
|
|
187
|
-
L: 147,
|
|
188
|
-
S: this,
|
|
189
|
-
A: [
|
|
190
|
-
"!this._initialized",
|
|
191
|
-
"'Observability is already initialized'"
|
|
192
|
-
]
|
|
193
|
-
});
|
|
147
|
+
invariant(!this._initialized, "Observability is already initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 86, S: this, A: ["!this._initialized", "'Observability is already initialized'"] });
|
|
194
148
|
this._dataProviders.push(dataProvider);
|
|
195
149
|
}
|
|
196
150
|
/**
|
|
@@ -299,29 +253,13 @@ var make = () => Effect.succeed(new ObservabilityImpl());
|
|
|
299
253
|
var addExtension = (_extension) => Effect.fn(function* (_observability) {
|
|
300
254
|
const observability = yield* _observability;
|
|
301
255
|
const extension = yield* _extension;
|
|
302
|
-
invariant("_addExtension" in observability && typeof observability._addExtension === "function", void 0, {
|
|
303
|
-
F: __dxlog_file2,
|
|
304
|
-
L: 276,
|
|
305
|
-
S: this,
|
|
306
|
-
A: [
|
|
307
|
-
"'_addExtension' in observability && typeof observability._addExtension === 'function'",
|
|
308
|
-
""
|
|
309
|
-
]
|
|
310
|
-
});
|
|
256
|
+
invariant("_addExtension" in observability && typeof observability._addExtension === "function", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 194, S: this, A: ["'_addExtension' in observability && typeof observability._addExtension === 'function'", ""] });
|
|
311
257
|
observability._addExtension(extension);
|
|
312
258
|
return observability;
|
|
313
259
|
});
|
|
314
260
|
var addDataProvider = (dataProvider) => Effect.fn(function* (_observability) {
|
|
315
261
|
const observability = yield* _observability;
|
|
316
|
-
invariant("_addDataProvider" in observability && typeof observability._addDataProvider === "function", void 0, {
|
|
317
|
-
F: __dxlog_file2,
|
|
318
|
-
L: 284,
|
|
319
|
-
S: this,
|
|
320
|
-
A: [
|
|
321
|
-
"'_addDataProvider' in observability && typeof observability._addDataProvider === 'function'",
|
|
322
|
-
""
|
|
323
|
-
]
|
|
324
|
-
});
|
|
262
|
+
invariant("_addDataProvider" in observability && typeof observability._addDataProvider === "function", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 200, S: this, A: ["'_addDataProvider' in observability && typeof observability._addDataProvider === 'function'", ""] });
|
|
325
263
|
observability._addDataProvider(dataProvider);
|
|
326
264
|
return observability;
|
|
327
265
|
});
|
|
@@ -395,24 +333,21 @@ var extensions = Effect3.fn(function* ({
|
|
|
395
333
|
metrics: metricsEnabled = false,
|
|
396
334
|
traces: tracesEnabled = false
|
|
397
335
|
}) {
|
|
398
|
-
const { OtelLogs } = yield* Effect3.promise(() => import("./logs-
|
|
399
|
-
const { OtelMetrics } = yield* Effect3.promise(() => import("./metrics-
|
|
400
|
-
const { OtelTraces } = yield* Effect3.promise(() => import("./traces-browser-
|
|
336
|
+
const { OtelLogs } = yield* Effect3.promise(() => import("./logs-UTNIFYHF.mjs"));
|
|
337
|
+
const { OtelMetrics } = yield* Effect3.promise(() => import("./metrics-PRGSYAZJ.mjs"));
|
|
338
|
+
const { OtelTraces } = yield* Effect3.promise(() => import("./traces-browser-XRINKQUA.mjs"));
|
|
401
339
|
const cachedDisabled = yield* Effect3.promise(() => isObservabilityDisabled(serviceName));
|
|
402
340
|
const disabled = cachedDisabled || isObservabilityDisabledSync(serviceName);
|
|
403
341
|
const enabledRef = yield* Ref.make(!disabled);
|
|
404
342
|
const tags = /* @__PURE__ */ new Map();
|
|
405
|
-
const endpoint = isNode() ? process.env.DX_OTEL_ENDPOINT ?? _endpoint ?? cli_observability_secrets_default.OTEL_ENDPOINT : config.values.runtime?.app?.env?.DX_OTEL_ENDPOINT;
|
|
343
|
+
const endpoint = isNode() ? process.env.DX_OTEL_ENDPOINT ?? _endpoint ?? cli_observability_secrets_default.OTEL_ENDPOINT : config.values.runtime?.app?.env?.DX_OTEL_ENDPOINT ?? _endpoint;
|
|
406
344
|
const headers = _headers ?? Match.value(isNode()).pipe(Match.when(true, () => Option.fromNullable(process.env.DX_OTEL_HEADERS ?? cli_observability_secrets_default.OTEL_HEADERS)), Match.when(false, () => Option.fromNullable(config.values.runtime?.app?.env?.DX_OTEL_HEADERS)), Match.exhaustive, Option.map((raw) => parseHeaders(raw)), Option.getOrElse(() => void 0));
|
|
407
|
-
if (!endpoint
|
|
408
|
-
log3.info("Missing OTEL_ENDPOINT
|
|
409
|
-
F: __dxlog_file3,
|
|
410
|
-
L: 78,
|
|
411
|
-
S: this,
|
|
412
|
-
C: (f, a) => f(...a)
|
|
413
|
-
});
|
|
345
|
+
if (!endpoint) {
|
|
346
|
+
log3.info("Missing OTEL_ENDPOINT", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 31, S: this });
|
|
414
347
|
return stubExtension;
|
|
415
348
|
}
|
|
349
|
+
const resolvedHeaders = headers ?? {};
|
|
350
|
+
const resolvedEndpoint = !isNode() && endpoint.startsWith("/") ? `${globalThis.location.origin}${endpoint}` : endpoint;
|
|
416
351
|
const clientTag = resolveTelemetryTag(config);
|
|
417
352
|
if (clientTag) {
|
|
418
353
|
tags.set("ctx.tag", clientTag);
|
|
@@ -428,21 +363,21 @@ var extensions = Effect3.fn(function* ({
|
|
|
428
363
|
} : {}
|
|
429
364
|
}));
|
|
430
365
|
const logs = logsEnabled ? new OtelLogs({
|
|
431
|
-
endpoint,
|
|
432
|
-
headers,
|
|
366
|
+
endpoint: resolvedEndpoint,
|
|
367
|
+
headers: resolvedHeaders,
|
|
433
368
|
resource,
|
|
434
369
|
getTags: () => Object.fromEntries(tags),
|
|
435
370
|
logLevel
|
|
436
371
|
}) : void 0;
|
|
437
372
|
const metrics = metricsEnabled ? new OtelMetrics({
|
|
438
|
-
endpoint,
|
|
439
|
-
headers,
|
|
373
|
+
endpoint: resolvedEndpoint,
|
|
374
|
+
headers: resolvedHeaders,
|
|
440
375
|
resource,
|
|
441
376
|
getTags: () => Object.fromEntries(tags)
|
|
442
377
|
}) : void 0;
|
|
443
378
|
const traces = tracesEnabled ? new OtelTraces({
|
|
444
|
-
endpoint,
|
|
445
|
-
headers,
|
|
379
|
+
endpoint: resolvedEndpoint,
|
|
380
|
+
headers: resolvedHeaders,
|
|
446
381
|
resource,
|
|
447
382
|
getTags: () => Object.fromEntries(tags)
|
|
448
383
|
}) : void 0;
|
|
@@ -473,12 +408,7 @@ var extensions = Effect3.fn(function* ({
|
|
|
473
408
|
]);
|
|
474
409
|
for (const result of results) {
|
|
475
410
|
if (result.status === "rejected") {
|
|
476
|
-
log3.catch(result.reason, void 0, {
|
|
477
|
-
F: __dxlog_file3,
|
|
478
|
-
L: 170,
|
|
479
|
-
S: this,
|
|
480
|
-
C: (f, a) => f(...a)
|
|
481
|
-
});
|
|
411
|
+
log3.catch(result.reason, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 116, S: this });
|
|
482
412
|
}
|
|
483
413
|
}
|
|
484
414
|
await traces?.close();
|
|
@@ -490,12 +420,7 @@ var extensions = Effect3.fn(function* ({
|
|
|
490
420
|
]);
|
|
491
421
|
for (const result of results) {
|
|
492
422
|
if (result.status === "rejected") {
|
|
493
|
-
log3.catch(result.reason, void 0, {
|
|
494
|
-
F: __dxlog_file3,
|
|
495
|
-
L: 183,
|
|
496
|
-
S: this,
|
|
497
|
-
C: (f, a) => f(...a)
|
|
498
|
-
});
|
|
423
|
+
log3.catch(result.reason, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 131, S: this });
|
|
499
424
|
}
|
|
500
425
|
}
|
|
501
426
|
await traces?.flush();
|
|
@@ -573,7 +498,7 @@ __export(posthog_exports, {
|
|
|
573
498
|
|
|
574
499
|
// src/extensions/posthog/extension.ts
|
|
575
500
|
import * as Effect4 from "effect/Effect";
|
|
576
|
-
import {
|
|
501
|
+
import { log as log4 } from "@dxos/log";
|
|
577
502
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/sdk/observability/src/extensions/posthog/extension.ts";
|
|
578
503
|
var uploadLogs = async (body) => {
|
|
579
504
|
try {
|
|
@@ -587,12 +512,7 @@ var uploadLogs = async (body) => {
|
|
|
587
512
|
if (!response.ok) {
|
|
588
513
|
log4.warn("feedback log upload failed", {
|
|
589
514
|
status: response.status
|
|
590
|
-
}, {
|
|
591
|
-
F: __dxlog_file4,
|
|
592
|
-
L: 34,
|
|
593
|
-
S: void 0,
|
|
594
|
-
C: (f, a) => f(...a)
|
|
595
|
-
});
|
|
515
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 17, S: void 0 });
|
|
596
516
|
return void 0;
|
|
597
517
|
}
|
|
598
518
|
const { key } = await response.json();
|
|
@@ -600,40 +520,24 @@ var uploadLogs = async (body) => {
|
|
|
600
520
|
} catch (err) {
|
|
601
521
|
log4.warn("feedback log upload error", {
|
|
602
522
|
error: err
|
|
603
|
-
}, {
|
|
604
|
-
F: __dxlog_file4,
|
|
605
|
-
L: 40,
|
|
606
|
-
S: void 0,
|
|
607
|
-
C: (f, a) => f(...a)
|
|
608
|
-
});
|
|
523
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 25, S: void 0 });
|
|
609
524
|
return void 0;
|
|
610
525
|
}
|
|
611
526
|
};
|
|
612
|
-
var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog: posthogConfig,
|
|
527
|
+
var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog: posthogConfig, logStore, feedbackLogMaxSize }) {
|
|
613
528
|
if (typeof window === "undefined") {
|
|
614
|
-
log4("PostHog is being stubbed because it is running in a worker.", void 0, {
|
|
615
|
-
F: __dxlog_file4,
|
|
616
|
-
L: 54,
|
|
617
|
-
S: this,
|
|
618
|
-
C: (f, a) => f(...a)
|
|
619
|
-
});
|
|
529
|
+
log4("PostHog is being stubbed because it is running in a worker.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 33, S: this });
|
|
620
530
|
return stubExtension;
|
|
621
531
|
}
|
|
622
532
|
const feedbackSurveyId = config.get("runtime.app.env.DX_POSTHOG_FEEDBACK_SURVEY_ID");
|
|
623
533
|
const apiKey = config.get("runtime.app.env.DX_POSTHOG_API_KEY");
|
|
624
534
|
const api_host = config.get("runtime.app.env.DX_POSTHOG_API_HOST");
|
|
625
535
|
if (!apiKey || !api_host) {
|
|
626
|
-
log4.info("Missing POSTHOG_API_KEY or POSTHOG_API_HOST", void 0, {
|
|
627
|
-
F: __dxlog_file4,
|
|
628
|
-
L: 62,
|
|
629
|
-
S: this,
|
|
630
|
-
C: (f, a) => f(...a)
|
|
631
|
-
});
|
|
536
|
+
log4.info("Missing POSTHOG_API_KEY or POSTHOG_API_HOST", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 40, S: this });
|
|
632
537
|
return stubExtension;
|
|
633
538
|
}
|
|
634
539
|
const { default: posthog } = yield* Effect4.promise(() => import("posthog-js"));
|
|
635
|
-
const { logProcessor } = yield* Effect4.promise(() => import("./log-processor-
|
|
636
|
-
const logBuffer = externalLogBuffer ?? new LogBuffer();
|
|
540
|
+
const { logProcessor } = yield* Effect4.promise(() => import("./log-processor-HPHWNBOK.mjs"));
|
|
637
541
|
let feedbackSurveyAvailable = null;
|
|
638
542
|
let unregisterPosthogProcessors;
|
|
639
543
|
const checkFeedbackSurveyAvailable = () => feedbackSurveyId ? Effect4.promise(() => {
|
|
@@ -667,21 +571,9 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
667
571
|
});
|
|
668
572
|
}
|
|
669
573
|
unregisterPosthogProcessors?.();
|
|
670
|
-
const removePosthogLog = log4.addProcessor(logProcessor, void 0, {
|
|
671
|
-
F: __dxlog_file4,
|
|
672
|
-
L: 105,
|
|
673
|
-
S: this,
|
|
674
|
-
C: (f, a) => f(...a)
|
|
675
|
-
});
|
|
676
|
-
const removeLogBuffer = log4.addProcessor(logBuffer.logProcessor, void 0, {
|
|
677
|
-
F: __dxlog_file4,
|
|
678
|
-
L: 106,
|
|
679
|
-
S: this,
|
|
680
|
-
C: (f, a) => f(...a)
|
|
681
|
-
});
|
|
574
|
+
const removePosthogLog = log4.addProcessor(logProcessor, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 79, S: this });
|
|
682
575
|
unregisterPosthogProcessors = () => {
|
|
683
576
|
removePosthogLog();
|
|
684
|
-
removeLogBuffer();
|
|
685
577
|
};
|
|
686
578
|
}),
|
|
687
579
|
close: () => Effect4.sync(() => {
|
|
@@ -726,17 +618,17 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
726
618
|
if (!survey || survey.questions.length === 0) {
|
|
727
619
|
log4.error("Missing feedback survey or survey has no questions", {
|
|
728
620
|
feedbackSurveyId
|
|
729
|
-
}, {
|
|
730
|
-
F: __dxlog_file4,
|
|
731
|
-
L: 153,
|
|
732
|
-
S: this,
|
|
733
|
-
C: (f, a) => f(...a)
|
|
734
|
-
});
|
|
621
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 124, S: this });
|
|
735
622
|
return;
|
|
736
623
|
}
|
|
737
624
|
let debugLogDumpKey = null;
|
|
738
|
-
if (form.includeLogs !== false &&
|
|
739
|
-
|
|
625
|
+
if (form.includeLogs !== false && logStore !== void 0) {
|
|
626
|
+
const ndjson = await logStore.export({
|
|
627
|
+
maxSize: feedbackLogMaxSize
|
|
628
|
+
});
|
|
629
|
+
if (ndjson.length > 0) {
|
|
630
|
+
debugLogDumpKey = await uploadLogs(ndjson) ?? "failed";
|
|
631
|
+
}
|
|
740
632
|
}
|
|
741
633
|
const question = survey.questions[0];
|
|
742
634
|
posthog.capture("survey sent", {
|
|
@@ -814,19 +706,11 @@ var identityProvider = (clientServices) => Effect5.fn(function* (observability)
|
|
|
814
706
|
});
|
|
815
707
|
});
|
|
816
708
|
var networkMetricsProvider = (clientServices) => Effect5.fn(function* (observability) {
|
|
817
|
-
const ctx = new Context(void 0, {
|
|
818
|
-
F: __dxlog_file5,
|
|
819
|
-
L: 61
|
|
820
|
-
});
|
|
709
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 50 });
|
|
821
710
|
let lastNetworkStatus;
|
|
822
711
|
const updateSignalMetrics = new Event().debounce(NETWORK_METRICS_MIN_INTERVAL);
|
|
823
712
|
updateSignalMetrics.on(ctx, async () => {
|
|
824
|
-
log5("send signal metrics", void 0, {
|
|
825
|
-
F: __dxlog_file5,
|
|
826
|
-
L: 67,
|
|
827
|
-
S: this,
|
|
828
|
-
C: (f, a) => f(...a)
|
|
829
|
-
});
|
|
713
|
+
log5("send signal metrics", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 55, S: this });
|
|
830
714
|
lastNetworkStatus?.signaling?.forEach(({ server, state }) => {
|
|
831
715
|
observability.metrics.gauge("dxos.client.network.signal.connectionState", state, {
|
|
832
716
|
server
|
|
@@ -871,20 +755,11 @@ var networkMetricsProvider = (clientServices) => Effect5.fn(function* (observabi
|
|
|
871
755
|
};
|
|
872
756
|
});
|
|
873
757
|
var runtimeMetricsProvider = (clientServices) => Effect5.fn(function* (observability) {
|
|
874
|
-
const ctx = new Context(void 0, {
|
|
875
|
-
|
|
876
|
-
L: 121
|
|
877
|
-
});
|
|
758
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 100 });
|
|
759
|
+
log5("runtimeMetricsProvider: requesting platform from SystemService", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 101, S: this });
|
|
878
760
|
const platform = yield* Effect5.promise(() => clientServices.SystemService.getPlatform());
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
L: 123,
|
|
882
|
-
S: this,
|
|
883
|
-
A: [
|
|
884
|
-
"platform",
|
|
885
|
-
"'platform is required'"
|
|
886
|
-
]
|
|
887
|
-
});
|
|
761
|
+
log5("runtimeMetricsProvider: platform received", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 103, S: this });
|
|
762
|
+
invariant2(platform, "platform is required", { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 104, S: this, A: ["platform", "'platform is required'"] });
|
|
888
763
|
observability.setTags({
|
|
889
764
|
platformType: Platform.PLATFORM_TYPE[platform.type].toLowerCase(),
|
|
890
765
|
platform: platform.platform,
|
|
@@ -908,33 +783,20 @@ var runtimeMetricsProvider = (clientServices) => Effect5.fn(function* (observabi
|
|
|
908
783
|
}
|
|
909
784
|
}).catch((error) => log5("platform error", {
|
|
910
785
|
error
|
|
911
|
-
}, {
|
|
912
|
-
F: __dxlog_file5,
|
|
913
|
-
L: 152,
|
|
914
|
-
S: this,
|
|
915
|
-
C: (f, a) => f(...a)
|
|
916
|
-
}));
|
|
786
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 126, S: this }));
|
|
917
787
|
}, RUNTIME_METRICS_MIN_INTERVAL);
|
|
918
788
|
return async () => {
|
|
919
789
|
await ctx.dispose();
|
|
920
790
|
};
|
|
921
791
|
});
|
|
922
792
|
var spacesMetricsProvider = (client) => Effect5.fn(function* (observability) {
|
|
923
|
-
const ctx = new Context(void 0, {
|
|
924
|
-
F: __dxlog_file5,
|
|
925
|
-
L: 165
|
|
926
|
-
});
|
|
793
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 135 });
|
|
927
794
|
const spaces = client.spaces.get();
|
|
928
795
|
const subscriptions = /* @__PURE__ */ new Map();
|
|
929
796
|
ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
930
797
|
const updateSpaceMetrics = new Event().debounce(SPACE_METRICS_MIN_INTERVAL);
|
|
931
798
|
updateSpaceMetrics.on(ctx, async () => {
|
|
932
|
-
log5("send space metrics", void 0, {
|
|
933
|
-
F: __dxlog_file5,
|
|
934
|
-
L: 173,
|
|
935
|
-
S: this,
|
|
936
|
-
C: (f, a) => f(...a)
|
|
937
|
-
});
|
|
799
|
+
log5("send space metrics", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 142, S: this });
|
|
938
800
|
for (const data of mapSpaces(spaces, {
|
|
939
801
|
truncateKeys: true
|
|
940
802
|
})) {
|
|
@@ -1055,12 +917,7 @@ var provider = (config) => (observability) => Effect6.gen(function* () {
|
|
|
1055
917
|
}).pipe(Effect6.provide(FetchHttpClient.layer), Effect6.catchAll((err) => Effect6.sync(() => {
|
|
1056
918
|
log6.verbose("ipdata fetch failed", {
|
|
1057
919
|
err
|
|
1058
|
-
}, {
|
|
1059
|
-
F: __dxlog_file6,
|
|
1060
|
-
L: 88,
|
|
1061
|
-
S: void 0,
|
|
1062
|
-
C: (f, a) => f(...a)
|
|
1063
|
-
});
|
|
920
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 54, S: void 0 });
|
|
1064
921
|
})));
|
|
1065
922
|
|
|
1066
923
|
// src/providers/storage.ts
|