@dxos/observability 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef
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 +111 -184
- 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 +100 -154
- 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 +53 -34
- 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 +7 -7
- 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 +10 -0
- package/dist/types/src/storage/browser.js.map +1 -1
- package/dist/types/src/storage/node.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -16
- 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 +68 -39
- package/src/extensions/otel/traces.ts +74 -10
- package/src/extensions/posthog/extension.ts +14 -9
- 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 +9 -0
- package/dist/lib/browser/log-processor-FDLTDQEM.mjs.map +0 -7
- package/dist/lib/browser/traces-browser-PUNCJ5KV.mjs +0 -112
- package/dist/lib/browser/traces-browser-PUNCJ5KV.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
|
@@ -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,40 +541,24 @@ 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;
|
|
568
563
|
let unregisterPosthogProcessors;
|
|
569
564
|
const checkFeedbackSurveyAvailable = () => feedbackSurveyId ? Effect4.promise(() => {
|
|
@@ -597,21 +592,9 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
597
592
|
});
|
|
598
593
|
}
|
|
599
594
|
unregisterPosthogProcessors?.();
|
|
600
|
-
const removePosthogLog = log3.addProcessor(logProcessor, void 0, {
|
|
601
|
-
F: __dxlog_file3,
|
|
602
|
-
L: 105,
|
|
603
|
-
S: this,
|
|
604
|
-
C: (f, a) => f(...a)
|
|
605
|
-
});
|
|
606
|
-
const removeLogBuffer = log3.addProcessor(logBuffer.logProcessor, void 0, {
|
|
607
|
-
F: __dxlog_file3,
|
|
608
|
-
L: 106,
|
|
609
|
-
S: this,
|
|
610
|
-
C: (f, a) => f(...a)
|
|
611
|
-
});
|
|
595
|
+
const removePosthogLog = log3.addProcessor(logProcessor, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 79, S: this });
|
|
612
596
|
unregisterPosthogProcessors = () => {
|
|
613
597
|
removePosthogLog();
|
|
614
|
-
removeLogBuffer();
|
|
615
598
|
};
|
|
616
599
|
}),
|
|
617
600
|
close: () => Effect4.sync(() => {
|
|
@@ -656,17 +639,15 @@ var extensions2 = Effect4.fn(function* ({ config, release, environment, posthog:
|
|
|
656
639
|
if (!survey || survey.questions.length === 0) {
|
|
657
640
|
log3.error("Missing feedback survey or survey has no questions", {
|
|
658
641
|
feedbackSurveyId
|
|
659
|
-
}, {
|
|
660
|
-
F: __dxlog_file3,
|
|
661
|
-
L: 153,
|
|
662
|
-
S: this,
|
|
663
|
-
C: (f, a) => f(...a)
|
|
664
|
-
});
|
|
642
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 124, S: this });
|
|
665
643
|
return;
|
|
666
644
|
}
|
|
667
645
|
let debugLogDumpKey = null;
|
|
668
|
-
if (form.includeLogs !== false &&
|
|
669
|
-
|
|
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
|
+
}
|
|
670
651
|
}
|
|
671
652
|
const question = survey.questions[0];
|
|
672
653
|
posthog.capture("survey sent", {
|
|
@@ -744,19 +725,11 @@ var identityProvider = (clientServices) => Effect5.fn(function* (observability)
|
|
|
744
725
|
});
|
|
745
726
|
});
|
|
746
727
|
var networkMetricsProvider = (clientServices) => Effect5.fn(function* (observability) {
|
|
747
|
-
const ctx = new Context(void 0, {
|
|
748
|
-
F: __dxlog_file4,
|
|
749
|
-
L: 61
|
|
750
|
-
});
|
|
728
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 50 });
|
|
751
729
|
let lastNetworkStatus;
|
|
752
730
|
const updateSignalMetrics = new Event().debounce(NETWORK_METRICS_MIN_INTERVAL);
|
|
753
731
|
updateSignalMetrics.on(ctx, async () => {
|
|
754
|
-
log4("send signal metrics", void 0, {
|
|
755
|
-
F: __dxlog_file4,
|
|
756
|
-
L: 67,
|
|
757
|
-
S: this,
|
|
758
|
-
C: (f, a) => f(...a)
|
|
759
|
-
});
|
|
732
|
+
log4("send signal metrics", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 55, S: this });
|
|
760
733
|
lastNetworkStatus?.signaling?.forEach(({ server, state }) => {
|
|
761
734
|
observability.metrics.gauge("dxos.client.network.signal.connectionState", state, {
|
|
762
735
|
server
|
|
@@ -801,20 +774,11 @@ var networkMetricsProvider = (clientServices) => Effect5.fn(function* (observabi
|
|
|
801
774
|
};
|
|
802
775
|
});
|
|
803
776
|
var runtimeMetricsProvider = (clientServices) => Effect5.fn(function* (observability) {
|
|
804
|
-
const ctx = new Context(void 0, {
|
|
805
|
-
|
|
806
|
-
L: 121
|
|
807
|
-
});
|
|
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 });
|
|
808
779
|
const platform = yield* Effect5.promise(() => clientServices.SystemService.getPlatform());
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
L: 123,
|
|
812
|
-
S: this,
|
|
813
|
-
A: [
|
|
814
|
-
"platform",
|
|
815
|
-
"'platform is required'"
|
|
816
|
-
]
|
|
817
|
-
});
|
|
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'"] });
|
|
818
782
|
observability.setTags({
|
|
819
783
|
platformType: Platform.PLATFORM_TYPE[platform.type].toLowerCase(),
|
|
820
784
|
platform: platform.platform,
|
|
@@ -838,33 +802,20 @@ var runtimeMetricsProvider = (clientServices) => Effect5.fn(function* (observabi
|
|
|
838
802
|
}
|
|
839
803
|
}).catch((error) => log4("platform error", {
|
|
840
804
|
error
|
|
841
|
-
}, {
|
|
842
|
-
F: __dxlog_file4,
|
|
843
|
-
L: 152,
|
|
844
|
-
S: this,
|
|
845
|
-
C: (f, a) => f(...a)
|
|
846
|
-
}));
|
|
805
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 126, S: this }));
|
|
847
806
|
}, RUNTIME_METRICS_MIN_INTERVAL);
|
|
848
807
|
return async () => {
|
|
849
808
|
await ctx.dispose();
|
|
850
809
|
};
|
|
851
810
|
});
|
|
852
811
|
var spacesMetricsProvider = (client) => Effect5.fn(function* (observability) {
|
|
853
|
-
const ctx = new Context(void 0, {
|
|
854
|
-
F: __dxlog_file4,
|
|
855
|
-
L: 165
|
|
856
|
-
});
|
|
812
|
+
const ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 135 });
|
|
857
813
|
const spaces = client.spaces.get();
|
|
858
814
|
const subscriptions = /* @__PURE__ */ new Map();
|
|
859
815
|
ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
860
816
|
const updateSpaceMetrics = new Event().debounce(SPACE_METRICS_MIN_INTERVAL);
|
|
861
817
|
updateSpaceMetrics.on(ctx, async () => {
|
|
862
|
-
log4("send space metrics", void 0, {
|
|
863
|
-
F: __dxlog_file4,
|
|
864
|
-
L: 173,
|
|
865
|
-
S: this,
|
|
866
|
-
C: (f, a) => f(...a)
|
|
867
|
-
});
|
|
818
|
+
log4("send space metrics", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 142, S: this });
|
|
868
819
|
for (const data of mapSpaces(spaces, {
|
|
869
820
|
truncateKeys: true
|
|
870
821
|
})) {
|
|
@@ -985,12 +936,7 @@ var provider = (config) => (observability) => Effect6.gen(function* () {
|
|
|
985
936
|
}).pipe(Effect6.provide(FetchHttpClient.layer), Effect6.catchAll((err) => Effect6.sync(() => {
|
|
986
937
|
log5.verbose("ipdata fetch failed", {
|
|
987
938
|
err
|
|
988
|
-
}, {
|
|
989
|
-
F: __dxlog_file5,
|
|
990
|
-
L: 88,
|
|
991
|
-
S: void 0,
|
|
992
|
-
C: (f, a) => f(...a)
|
|
993
|
-
});
|
|
939
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 54, S: void 0 });
|
|
994
940
|
})));
|
|
995
941
|
|
|
996
942
|
// src/providers/storage.ts
|