@dxos/observability 0.8.4-main.c85a9c8dae → 0.8.4-main.cb12b3f963
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-3534PNWM.mjs} +1 -1
- package/dist/lib/browser/{chunk-K4VFBKST.mjs.map → chunk-3534PNWM.mjs.map} +2 -2
- package/dist/lib/browser/index.mjs +125 -190
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{log-processor-FDLTDQEM.mjs → log-processor-HPHWNBOK.mjs} +11 -18
- package/dist/lib/browser/log-processor-HPHWNBOK.mjs.map +7 -0
- package/dist/lib/browser/{logs-ATTRIUTL.mjs → logs-A2VDAHHD.mjs} +5 -3
- package/dist/lib/browser/{logs-ATTRIUTL.mjs.map → logs-A2VDAHHD.mjs.map} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{metrics-PKTV6IGF.mjs → metrics-6OSN54ZV.mjs} +5 -20
- package/dist/lib/browser/{metrics-PKTV6IGF.mjs.map → metrics-6OSN54ZV.mjs.map} +2 -2
- package/dist/lib/browser/traces-browser-6MRGAKFC.mjs +151 -0
- package/dist/lib/browser/traces-browser-6MRGAKFC.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-FEVP3MK4.mjs → chunk-SYPJQI4L.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-FEVP3MK4.mjs.map → chunk-SYPJQI4L.mjs.map} +2 -2
- package/dist/lib/node-esm/index.mjs +110 -157
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{log-processor-TKJVJJSJ.mjs → log-processor-ZODHERST.mjs} +11 -18
- package/dist/lib/node-esm/log-processor-ZODHERST.mjs.map +7 -0
- package/dist/lib/node-esm/{logs-7J45KLM7.mjs → logs-TA32MBMW.mjs} +5 -3
- package/dist/lib/node-esm/{logs-7J45KLM7.mjs.map → logs-TA32MBMW.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{metrics-H7DDLYSG.mjs → metrics-C5IKPAWD.mjs} +5 -20
- package/dist/lib/node-esm/{metrics-H7DDLYSG.mjs.map → metrics-C5IKPAWD.mjs.map} +2 -2
- package/dist/lib/node-esm/traces-5LKHMVVG.mjs +122 -0
- package/dist/lib/node-esm/traces-5LKHMVVG.mjs.map +7 -0
- package/dist/types/src/cli-observability-secrets.json +2 -2
- package/dist/types/src/extensions/otel/extension.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/extension.js +83 -6
- 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 +4 -1
- 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.map +1 -1
- package/dist/types/src/extensions/otel/otel.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/span-processors.d.ts +25 -0
- package/dist/types/src/extensions/otel/span-processors.d.ts.map +1 -0
- package/dist/types/src/extensions/otel/span-processors.js +41 -0
- package/dist/types/src/extensions/otel/span-processors.js.map +1 -0
- package/dist/types/src/extensions/otel/traces-browser.d.ts +17 -0
- package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/traces-browser.js +67 -13
- package/dist/types/src/extensions/otel/traces-browser.js.map +1 -1
- package/dist/types/src/extensions/otel/traces.d.ts +17 -0
- package/dist/types/src/extensions/otel/traces.d.ts.map +1 -1
- package/dist/types/src/extensions/otel/traces.js +57 -8
- package/dist/types/src/extensions/otel/traces.js.map +1 -1
- package/dist/types/src/extensions/posthog/extension.d.ts +7 -3
- package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -1
- package/dist/types/src/extensions/posthog/extension.js +17 -15
- package/dist/types/src/extensions/posthog/extension.js.map +1 -1
- package/dist/types/src/extensions/posthog/log-processor.d.ts.map +1 -1
- package/dist/types/src/extensions/posthog/log-processor.js +10 -19
- package/dist/types/src/extensions/posthog/log-processor.js.map +1 -1
- package/dist/types/src/extensions/posthog/log-processor.test.js +2 -2
- 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/browser.js +15 -4
- package/dist/types/src/storage/browser.js.map +1 -1
- package/dist/types/src/storage/node.d.ts.map +1 -1
- package/dist/types/src/storage/node.js +1 -1
- package/dist/types/src/storage/node.js.map +1 -1
- package/dist/types/src/storage/node.test.js +1 -1
- package/dist/types/src/storage/node.test.js.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -17
- package/src/cli-observability-secrets.json +2 -2
- package/src/extensions/otel/extension.ts +87 -7
- package/src/extensions/otel/logs.ts +4 -1
- package/src/extensions/otel/span-processors.ts +45 -0
- package/src/extensions/otel/traces-browser.ts +89 -13
- package/src/extensions/otel/traces.ts +74 -10
- package/src/extensions/posthog/extension.ts +24 -17
- package/src/extensions/posthog/log-processor.test.ts +7 -6
- package/src/extensions/posthog/log-processor.ts +10 -21
- package/src/providers/client-observability.ts +2 -0
- package/src/storage/browser.ts +14 -4
- package/src/storage/node.test.ts +1 -2
- package/src/storage/node.ts +1 -2
- package/src/vite-import-meta.d.ts +14 -0
- package/dist/lib/browser/log-processor-FDLTDQEM.mjs.map +0 -7
- package/dist/lib/browser/traces-browser-5DQUYGQ7.mjs +0 -68
- package/dist/lib/browser/traces-browser-5DQUYGQ7.mjs.map +0 -7
- package/dist/lib/node-esm/log-processor-TKJVJJSJ.mjs.map +0 -7
- package/dist/lib/node-esm/traces-KMTHMYFX.mjs +0 -44
- package/dist/lib/node-esm/traces-KMTHMYFX.mjs.map +0 -7
|
@@ -24,10 +24,10 @@ import { invariant } from "@dxos/invariant";
|
|
|
24
24
|
import { log } from "@dxos/log";
|
|
25
25
|
|
|
26
26
|
// src/storage/node.ts
|
|
27
|
+
import yaml from "js-yaml";
|
|
27
28
|
import { existsSync, statSync } from "node:fs";
|
|
28
29
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
29
30
|
import { join } from "node:path";
|
|
30
|
-
import yaml from "js-yaml";
|
|
31
31
|
import { v4 as uuid, validate as validateUuid } from "uuid";
|
|
32
32
|
var showObservabilityBanner = async (configDir, bannercb) => {
|
|
33
33
|
const path = join(configDir, ".observability-banner-printed");
|
|
@@ -114,12 +114,7 @@ var ObservabilityImpl = class {
|
|
|
114
114
|
this._subscriptions.add(...cleanups.filter((cleanup) => cleanup !== void 0));
|
|
115
115
|
this._initialized = true;
|
|
116
116
|
}).pipe(Effect.catchAll((error) => Effect.gen(this, function* () {
|
|
117
|
-
log.catch(error, void 0, {
|
|
118
|
-
F: __dxlog_file,
|
|
119
|
-
L: 85,
|
|
120
|
-
S: this,
|
|
121
|
-
C: (f, a) => f(...a)
|
|
122
|
-
});
|
|
117
|
+
log.catch(error, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 32, S: this });
|
|
123
118
|
for (const extension of initializedExtensions) {
|
|
124
119
|
if (extension.close) {
|
|
125
120
|
yield* extension.close().pipe(Effect.catchAll(() => Effect.succeed(void 0)));
|
|
@@ -168,27 +163,11 @@ var ObservabilityImpl = class {
|
|
|
168
163
|
});
|
|
169
164
|
}
|
|
170
165
|
_addExtension(extension) {
|
|
171
|
-
invariant(!this._initialized, "Observability is already initialized", {
|
|
172
|
-
F: __dxlog_file,
|
|
173
|
-
L: 142,
|
|
174
|
-
S: this,
|
|
175
|
-
A: [
|
|
176
|
-
"!this._initialized",
|
|
177
|
-
"'Observability is already initialized'"
|
|
178
|
-
]
|
|
179
|
-
});
|
|
166
|
+
invariant(!this._initialized, "Observability is already initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 82, S: this, A: ["!this._initialized", "'Observability is already initialized'"] });
|
|
180
167
|
this._extensions.push(extension);
|
|
181
168
|
}
|
|
182
169
|
_addDataProvider(dataProvider) {
|
|
183
|
-
invariant(!this._initialized, "Observability is already initialized", {
|
|
184
|
-
F: __dxlog_file,
|
|
185
|
-
L: 147,
|
|
186
|
-
S: this,
|
|
187
|
-
A: [
|
|
188
|
-
"!this._initialized",
|
|
189
|
-
"'Observability is already initialized'"
|
|
190
|
-
]
|
|
191
|
-
});
|
|
170
|
+
invariant(!this._initialized, "Observability is already initialized", { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 86, S: this, A: ["!this._initialized", "'Observability is already initialized'"] });
|
|
192
171
|
this._dataProviders.push(dataProvider);
|
|
193
172
|
}
|
|
194
173
|
/**
|
|
@@ -297,29 +276,13 @@ var make = () => Effect.succeed(new ObservabilityImpl());
|
|
|
297
276
|
var addExtension = (_extension) => Effect.fn(function* (_observability) {
|
|
298
277
|
const observability = yield* _observability;
|
|
299
278
|
const extension = yield* _extension;
|
|
300
|
-
invariant("_addExtension" in observability && typeof observability._addExtension === "function", void 0, {
|
|
301
|
-
F: __dxlog_file,
|
|
302
|
-
L: 276,
|
|
303
|
-
S: this,
|
|
304
|
-
A: [
|
|
305
|
-
"'_addExtension' in observability && typeof observability._addExtension === 'function'",
|
|
306
|
-
""
|
|
307
|
-
]
|
|
308
|
-
});
|
|
279
|
+
invariant("_addExtension" in observability && typeof observability._addExtension === "function", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 194, S: this, A: ["'_addExtension' in observability && typeof observability._addExtension === 'function'", ""] });
|
|
309
280
|
observability._addExtension(extension);
|
|
310
281
|
return observability;
|
|
311
282
|
});
|
|
312
283
|
var addDataProvider = (dataProvider) => Effect.fn(function* (_observability) {
|
|
313
284
|
const observability = yield* _observability;
|
|
314
|
-
invariant("_addDataProvider" in observability && typeof observability._addDataProvider === "function", void 0, {
|
|
315
|
-
F: __dxlog_file,
|
|
316
|
-
L: 284,
|
|
317
|
-
S: this,
|
|
318
|
-
A: [
|
|
319
|
-
"'_addDataProvider' in observability && typeof observability._addDataProvider === 'function'",
|
|
320
|
-
""
|
|
321
|
-
]
|
|
322
|
-
});
|
|
285
|
+
invariant("_addDataProvider" in observability && typeof observability._addDataProvider === "function", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 200, S: this, A: ["'_addDataProvider' in observability && typeof observability._addDataProvider === 'function'", ""] });
|
|
323
286
|
observability._addDataProvider(dataProvider);
|
|
324
287
|
return observability;
|
|
325
288
|
});
|
|
@@ -349,6 +312,7 @@ import * as Effect3 from "effect/Effect";
|
|
|
349
312
|
import * as Match from "effect/Match";
|
|
350
313
|
import * as Option from "effect/Option";
|
|
351
314
|
import * as Ref from "effect/Ref";
|
|
315
|
+
import { resolveTelemetryTag } from "@dxos/config";
|
|
352
316
|
import { LogLevel, log as log2 } from "@dxos/log";
|
|
353
317
|
import { isNode, isNonNullable } from "@dxos/util";
|
|
354
318
|
|
|
@@ -356,8 +320,8 @@ import { isNode, isNonNullable } from "@dxos/util";
|
|
|
356
320
|
var cli_observability_secrets_default = {
|
|
357
321
|
POSTHOG_API_KEY: null,
|
|
358
322
|
IPDATA_API_KEY: "73dfdecdf979c18f07d50cf841bbdd9e589f237256326ac8cca23786",
|
|
359
|
-
OTEL_ENDPOINT: "
|
|
360
|
-
OTEL_HEADERS:
|
|
323
|
+
OTEL_ENDPOINT: "/api/otel",
|
|
324
|
+
OTEL_HEADERS: null
|
|
361
325
|
};
|
|
362
326
|
|
|
363
327
|
// src/extensions/stub.ts
|
|
@@ -392,27 +356,32 @@ var extensions = Effect3.fn(function* ({
|
|
|
392
356
|
metrics: metricsEnabled = false,
|
|
393
357
|
traces: tracesEnabled = false
|
|
394
358
|
}) {
|
|
395
|
-
const { OtelLogs } = yield* Effect3.promise(() => import("./logs-
|
|
396
|
-
const { OtelMetrics } = yield* Effect3.promise(() => import("./metrics-
|
|
397
|
-
const { OtelTraces } = yield* Effect3.promise(() => import("./traces-
|
|
359
|
+
const { OtelLogs } = yield* Effect3.promise(() => import("./logs-TA32MBMW.mjs"));
|
|
360
|
+
const { OtelMetrics } = yield* Effect3.promise(() => import("./metrics-C5IKPAWD.mjs"));
|
|
361
|
+
const { OtelTraces } = yield* Effect3.promise(() => import("./traces-5LKHMVVG.mjs"));
|
|
398
362
|
const cachedDisabled = yield* Effect3.promise(() => isObservabilityDisabled(serviceName));
|
|
399
|
-
const
|
|
363
|
+
const disabled = cachedDisabled || isObservabilityDisabledSync(serviceName);
|
|
364
|
+
const enabledRef = yield* Ref.make(!disabled);
|
|
400
365
|
const tags = /* @__PURE__ */ new Map();
|
|
401
366
|
const endpoint = isNode() ? process.env.DX_OTEL_ENDPOINT ?? _endpoint ?? cli_observability_secrets_default.OTEL_ENDPOINT : config.values.runtime?.app?.env?.DX_OTEL_ENDPOINT;
|
|
402
367
|
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));
|
|
403
368
|
if (!endpoint || !headers) {
|
|
404
|
-
log2.info("Missing OTEL_ENDPOINT or OTEL_HEADERS", void 0, {
|
|
405
|
-
F: __dxlog_file2,
|
|
406
|
-
L: 77,
|
|
407
|
-
S: this,
|
|
408
|
-
C: (f, a) => f(...a)
|
|
409
|
-
});
|
|
369
|
+
log2.info("Missing OTEL_ENDPOINT or OTEL_HEADERS", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 31, S: this });
|
|
410
370
|
return stubExtension;
|
|
411
371
|
}
|
|
372
|
+
const clientTag = resolveTelemetryTag(config);
|
|
373
|
+
if (clientTag) {
|
|
374
|
+
tags.set("ctx.tag", clientTag);
|
|
375
|
+
}
|
|
412
376
|
const resource = defaultResource().merge(resourceFromAttributes({
|
|
413
377
|
[ATTR_SERVICE_NAME]: serviceName,
|
|
414
378
|
[ATTR_SERVICE_VERSION]: serviceVersion,
|
|
415
|
-
"
|
|
379
|
+
"session.id": crypto.randomUUID(),
|
|
380
|
+
"deployment.environment": environment,
|
|
381
|
+
"dxos.process.type": detectProcessType(),
|
|
382
|
+
...clientTag ? {
|
|
383
|
+
"ctx.tag": clientTag
|
|
384
|
+
} : {}
|
|
416
385
|
}));
|
|
417
386
|
const logs = logsEnabled ? new OtelLogs({
|
|
418
387
|
endpoint,
|
|
@@ -433,8 +402,11 @@ var extensions = Effect3.fn(function* ({
|
|
|
433
402
|
resource,
|
|
434
403
|
getTags: () => Object.fromEntries(tags)
|
|
435
404
|
}) : void 0;
|
|
436
|
-
|
|
405
|
+
const extension = {
|
|
437
406
|
initialize: () => Effect3.sync(() => {
|
|
407
|
+
if (disabled) {
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
438
410
|
if (logs) {
|
|
439
411
|
log2.runtimeConfig.processors.push(logs.logProcessor);
|
|
440
412
|
}
|
|
@@ -451,12 +423,28 @@ var extensions = Effect3.fn(function* ({
|
|
|
451
423
|
yield* Ref.update(enabledRef, () => false);
|
|
452
424
|
}),
|
|
453
425
|
close: () => Effect3.promise(async () => {
|
|
454
|
-
await
|
|
455
|
-
|
|
426
|
+
const results = await Promise.allSettled([
|
|
427
|
+
logs?.close(),
|
|
428
|
+
metrics?.close()
|
|
429
|
+
]);
|
|
430
|
+
for (const result of results) {
|
|
431
|
+
if (result.status === "rejected") {
|
|
432
|
+
log2.catch(result.reason, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 111, S: this });
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
await traces?.close();
|
|
456
436
|
}),
|
|
457
437
|
flush: () => Effect3.promise(async () => {
|
|
458
|
-
await
|
|
459
|
-
|
|
438
|
+
const results = await Promise.allSettled([
|
|
439
|
+
logs?.flush(),
|
|
440
|
+
metrics?.flush()
|
|
441
|
+
]);
|
|
442
|
+
for (const result of results) {
|
|
443
|
+
if (result.status === "rejected") {
|
|
444
|
+
log2.catch(result.reason, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 126, S: this });
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
await traces?.flush();
|
|
460
448
|
}),
|
|
461
449
|
setTags: (incomingTags) => {
|
|
462
450
|
for (const [key, value2] of Object.entries(incomingTags)) {
|
|
@@ -484,7 +472,35 @@ var extensions = Effect3.fn(function* ({
|
|
|
484
472
|
} : void 0
|
|
485
473
|
].filter(isNonNullable)
|
|
486
474
|
};
|
|
475
|
+
return extension;
|
|
487
476
|
});
|
|
477
|
+
var isObservabilityDisabledSync = (serviceName) => {
|
|
478
|
+
if (isNode()) {
|
|
479
|
+
return process.env.DX_DISABLE_OBSERVABILITY === "true";
|
|
480
|
+
}
|
|
481
|
+
try {
|
|
482
|
+
if (typeof localStorage !== "undefined") {
|
|
483
|
+
return localStorage.getItem(`${serviceName}/observability-disabled`) === "true";
|
|
484
|
+
}
|
|
485
|
+
} catch {
|
|
486
|
+
}
|
|
487
|
+
return false;
|
|
488
|
+
};
|
|
489
|
+
var detectProcessType = () => {
|
|
490
|
+
if (isNode()) {
|
|
491
|
+
return "node";
|
|
492
|
+
}
|
|
493
|
+
if (typeof window !== "undefined") {
|
|
494
|
+
return "browser";
|
|
495
|
+
}
|
|
496
|
+
if (typeof globalThis.ServiceWorkerGlobalScope !== "undefined") {
|
|
497
|
+
return "service-worker";
|
|
498
|
+
}
|
|
499
|
+
if (typeof globalThis.SharedWorkerGlobalScope !== "undefined") {
|
|
500
|
+
return "shared-worker";
|
|
501
|
+
}
|
|
502
|
+
return "dedicated-worker";
|
|
503
|
+
};
|
|
488
504
|
var parseHeaders = (unparsedHeaders) => {
|
|
489
505
|
return unparsedHeaders.split(";").reduce((acc, header) => {
|
|
490
506
|
const [key, ...rest] = header.split(":");
|
|
@@ -503,7 +519,7 @@ __export(posthog_exports, {
|
|
|
503
519
|
|
|
504
520
|
// src/extensions/posthog/extension.ts
|
|
505
521
|
import * as Effect4 from "effect/Effect";
|
|
506
|
-
import {
|
|
522
|
+
import { log as log3 } from "@dxos/log";
|
|
507
523
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/sdk/observability/src/extensions/posthog/extension.ts";
|
|
508
524
|
var uploadLogs = async (body) => {
|
|
509
525
|
try {
|
|
@@ -517,12 +533,7 @@ var uploadLogs = async (body) => {
|
|
|
517
533
|
if (!response.ok) {
|
|
518
534
|
log3.warn("feedback log upload failed", {
|
|
519
535
|
status: response.status
|
|
520
|
-
}, {
|
|
521
|
-
F: __dxlog_file3,
|
|
522
|
-
L: 34,
|
|
523
|
-
S: void 0,
|
|
524
|
-
C: (f, a) => f(...a)
|
|
525
|
-
});
|
|
536
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 17, S: void 0 });
|
|
526
537
|
return void 0;
|
|
527
538
|
}
|
|
528
539
|
const { key } = await response.json();
|
|
@@ -530,41 +541,26 @@ var uploadLogs = async (body) => {
|
|
|
530
541
|
} catch (err) {
|
|
531
542
|
log3.warn("feedback log upload error", {
|
|
532
543
|
error: err
|
|
533
|
-
}, {
|
|
534
|
-
F: __dxlog_file3,
|
|
535
|
-
L: 40,
|
|
536
|
-
S: void 0,
|
|
537
|
-
C: (f, a) => f(...a)
|
|
538
|
-
});
|
|
544
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 25, S: void 0 });
|
|
539
545
|
return void 0;
|
|
540
546
|
}
|
|
541
547
|
};
|
|
542
|
-
var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog: posthogConfig,
|
|
548
|
+
var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog: posthogConfig, logStore }) {
|
|
543
549
|
if (typeof window === "undefined") {
|
|
544
|
-
log3("PostHog is being stubbed because it is running in a worker.", void 0, {
|
|
545
|
-
F: __dxlog_file3,
|
|
546
|
-
L: 54,
|
|
547
|
-
S: this,
|
|
548
|
-
C: (f, a) => f(...a)
|
|
549
|
-
});
|
|
550
|
+
log3("PostHog is being stubbed because it is running in a worker.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 33, S: this });
|
|
550
551
|
return stubExtension;
|
|
551
552
|
}
|
|
552
553
|
const feedbackSurveyId = config.get("runtime.app.env.DX_POSTHOG_FEEDBACK_SURVEY_ID");
|
|
553
554
|
const apiKey = config.get("runtime.app.env.DX_POSTHOG_API_KEY");
|
|
554
555
|
const api_host = config.get("runtime.app.env.DX_POSTHOG_API_HOST");
|
|
555
556
|
if (!apiKey || !api_host) {
|
|
556
|
-
log3.info("Missing POSTHOG_API_KEY or POSTHOG_API_HOST", void 0, {
|
|
557
|
-
F: __dxlog_file3,
|
|
558
|
-
L: 62,
|
|
559
|
-
S: this,
|
|
560
|
-
C: (f, a) => f(...a)
|
|
561
|
-
});
|
|
557
|
+
log3.info("Missing POSTHOG_API_KEY or POSTHOG_API_HOST", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 40, S: this });
|
|
562
558
|
return stubExtension;
|
|
563
559
|
}
|
|
564
560
|
const { default: posthog } = yield* Effect4.promise(() => import("posthog-js"));
|
|
565
|
-
const { logProcessor } = yield* Effect4.promise(() => import("./log-processor-
|
|
566
|
-
const logBuffer = externalLogBuffer ?? new LogBuffer();
|
|
561
|
+
const { logProcessor } = yield* Effect4.promise(() => import("./log-processor-ZODHERST.mjs"));
|
|
567
562
|
let feedbackSurveyAvailable = null;
|
|
563
|
+
let unregisterPosthogProcessors;
|
|
568
564
|
const checkFeedbackSurveyAvailable = () => feedbackSurveyId ? Effect4.promise(() => {
|
|
569
565
|
if (feedbackSurveyAvailable !== null) {
|
|
570
566
|
return Promise.resolve(feedbackSurveyAvailable);
|
|
@@ -595,19 +591,15 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
595
591
|
} : {}
|
|
596
592
|
});
|
|
597
593
|
}
|
|
598
|
-
|
|
599
|
-
log3.
|
|
594
|
+
unregisterPosthogProcessors?.();
|
|
595
|
+
const removePosthogLog = log3.addProcessor(logProcessor, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 79, S: this });
|
|
596
|
+
unregisterPosthogProcessors = () => {
|
|
597
|
+
removePosthogLog();
|
|
598
|
+
};
|
|
600
599
|
}),
|
|
601
600
|
close: () => Effect4.sync(() => {
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
logBuffer.logProcessor
|
|
605
|
-
]) {
|
|
606
|
-
const index = log3.runtimeConfig.processors.indexOf(processor);
|
|
607
|
-
if (index !== -1) {
|
|
608
|
-
log3.runtimeConfig.processors.splice(index, 1);
|
|
609
|
-
}
|
|
610
|
-
}
|
|
601
|
+
unregisterPosthogProcessors?.();
|
|
602
|
+
unregisterPosthogProcessors = void 0;
|
|
611
603
|
}),
|
|
612
604
|
enable: () => Effect4.sync(() => posthog.opt_in_capturing()),
|
|
613
605
|
disable: () => Effect4.sync(() => posthog.opt_out_capturing()),
|
|
@@ -647,17 +639,15 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
647
639
|
if (!survey || survey.questions.length === 0) {
|
|
648
640
|
log3.error("Missing feedback survey or survey has no questions", {
|
|
649
641
|
feedbackSurveyId
|
|
650
|
-
}, {
|
|
651
|
-
F: __dxlog_file3,
|
|
652
|
-
L: 151,
|
|
653
|
-
S: this,
|
|
654
|
-
C: (f, a) => f(...a)
|
|
655
|
-
});
|
|
642
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 124, S: this });
|
|
656
643
|
return;
|
|
657
644
|
}
|
|
658
|
-
let debugLogDumpKey;
|
|
659
|
-
if (form.includeLogs !== false &&
|
|
660
|
-
|
|
645
|
+
let debugLogDumpKey = null;
|
|
646
|
+
if (form.includeLogs !== false && logStore !== void 0) {
|
|
647
|
+
const ndjson = await logStore.export();
|
|
648
|
+
if (ndjson.length > 0) {
|
|
649
|
+
debugLogDumpKey = await uploadLogs(ndjson) ?? "failed";
|
|
650
|
+
}
|
|
661
651
|
}
|
|
662
652
|
const question = survey.questions[0];
|
|
663
653
|
posthog.capture("survey sent", {
|
|
@@ -669,9 +659,7 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
669
659
|
}
|
|
670
660
|
],
|
|
671
661
|
[`$survey_response_${question.id}`]: form.message,
|
|
672
|
-
|
|
673
|
-
debug_log_dump_key: debugLogDumpKey
|
|
674
|
-
} : {}
|
|
662
|
+
debug_log_dump_key: debugLogDumpKey
|
|
675
663
|
});
|
|
676
664
|
});
|
|
677
665
|
},
|
|
@@ -737,19 +725,11 @@ var identityProvider = (clientServices) => Effect5.fn(function* (observability)
|
|
|
737
725
|
});
|
|
738
726
|
});
|
|
739
727
|
var networkMetricsProvider = (clientServices) => Effect5.fn(function* (observability) {
|
|
740
|
-
const ctx = new Context(void 0, {
|
|
741
|
-
F: __dxlog_file4,
|
|
742
|
-
L: 61
|
|
743
|
-
});
|
|
728
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 50 });
|
|
744
729
|
let lastNetworkStatus;
|
|
745
730
|
const updateSignalMetrics = new Event().debounce(NETWORK_METRICS_MIN_INTERVAL);
|
|
746
731
|
updateSignalMetrics.on(ctx, async () => {
|
|
747
|
-
log4("send signal metrics", void 0, {
|
|
748
|
-
F: __dxlog_file4,
|
|
749
|
-
L: 67,
|
|
750
|
-
S: this,
|
|
751
|
-
C: (f, a) => f(...a)
|
|
752
|
-
});
|
|
732
|
+
log4("send signal metrics", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 55, S: this });
|
|
753
733
|
lastNetworkStatus?.signaling?.forEach(({ server, state }) => {
|
|
754
734
|
observability.metrics.gauge("dxos.client.network.signal.connectionState", state, {
|
|
755
735
|
server
|
|
@@ -794,20 +774,11 @@ var networkMetricsProvider = (clientServices) => Effect5.fn(function* (observabi
|
|
|
794
774
|
};
|
|
795
775
|
});
|
|
796
776
|
var runtimeMetricsProvider = (clientServices) => Effect5.fn(function* (observability) {
|
|
797
|
-
const ctx = new Context(void 0, {
|
|
798
|
-
|
|
799
|
-
L: 121
|
|
800
|
-
});
|
|
777
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 100 });
|
|
778
|
+
log4("runtimeMetricsProvider: requesting platform from SystemService", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 101, S: this });
|
|
801
779
|
const platform = yield* Effect5.promise(() => clientServices.SystemService.getPlatform());
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
L: 123,
|
|
805
|
-
S: this,
|
|
806
|
-
A: [
|
|
807
|
-
"platform",
|
|
808
|
-
"'platform is required'"
|
|
809
|
-
]
|
|
810
|
-
});
|
|
780
|
+
log4("runtimeMetricsProvider: platform received", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 103, S: this });
|
|
781
|
+
invariant2(platform, "platform is required", { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 104, S: this, A: ["platform", "'platform is required'"] });
|
|
811
782
|
observability.setTags({
|
|
812
783
|
platformType: Platform.PLATFORM_TYPE[platform.type].toLowerCase(),
|
|
813
784
|
platform: platform.platform,
|
|
@@ -831,33 +802,20 @@ var runtimeMetricsProvider = (clientServices) => Effect5.fn(function* (observabi
|
|
|
831
802
|
}
|
|
832
803
|
}).catch((error) => log4("platform error", {
|
|
833
804
|
error
|
|
834
|
-
}, {
|
|
835
|
-
F: __dxlog_file4,
|
|
836
|
-
L: 152,
|
|
837
|
-
S: this,
|
|
838
|
-
C: (f, a) => f(...a)
|
|
839
|
-
}));
|
|
805
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 126, S: this }));
|
|
840
806
|
}, RUNTIME_METRICS_MIN_INTERVAL);
|
|
841
807
|
return async () => {
|
|
842
808
|
await ctx.dispose();
|
|
843
809
|
};
|
|
844
810
|
});
|
|
845
811
|
var spacesMetricsProvider = (client) => Effect5.fn(function* (observability) {
|
|
846
|
-
const ctx = new Context(void 0, {
|
|
847
|
-
F: __dxlog_file4,
|
|
848
|
-
L: 165
|
|
849
|
-
});
|
|
812
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 135 });
|
|
850
813
|
const spaces = client.spaces.get();
|
|
851
814
|
const subscriptions = /* @__PURE__ */ new Map();
|
|
852
815
|
ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
853
816
|
const updateSpaceMetrics = new Event().debounce(SPACE_METRICS_MIN_INTERVAL);
|
|
854
817
|
updateSpaceMetrics.on(ctx, async () => {
|
|
855
|
-
log4("send space metrics", void 0, {
|
|
856
|
-
F: __dxlog_file4,
|
|
857
|
-
L: 173,
|
|
858
|
-
S: this,
|
|
859
|
-
C: (f, a) => f(...a)
|
|
860
|
-
});
|
|
818
|
+
log4("send space metrics", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 142, S: this });
|
|
861
819
|
for (const data of mapSpaces(spaces, {
|
|
862
820
|
truncateKeys: true
|
|
863
821
|
})) {
|
|
@@ -978,12 +936,7 @@ var provider = (config) => (observability) => Effect6.gen(function* () {
|
|
|
978
936
|
}).pipe(Effect6.provide(FetchHttpClient.layer), Effect6.catchAll((err) => Effect6.sync(() => {
|
|
979
937
|
log5.verbose("ipdata fetch failed", {
|
|
980
938
|
err
|
|
981
|
-
}, {
|
|
982
|
-
F: __dxlog_file5,
|
|
983
|
-
L: 88,
|
|
984
|
-
S: void 0,
|
|
985
|
-
C: (f, a) => f(...a)
|
|
986
|
-
});
|
|
939
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 54, S: void 0 });
|
|
987
940
|
})));
|
|
988
941
|
|
|
989
942
|
// src/providers/storage.ts
|