@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.
Files changed (77) hide show
  1. package/dist/lib/browser/{chunk-K4VFBKST.mjs → chunk-PSFTIG54.mjs} +9 -2
  2. package/dist/lib/browser/chunk-PSFTIG54.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +52 -195
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/{log-processor-A6PJG6CM.mjs → log-processor-HPHWNBOK.mjs} +1 -1
  6. package/dist/lib/browser/{log-processor-A6PJG6CM.mjs.map → log-processor-HPHWNBOK.mjs.map} +2 -2
  7. package/dist/lib/browser/{logs-ATTRIUTL.mjs → logs-UTNIFYHF.mjs} +7 -4
  8. package/dist/lib/browser/logs-UTNIFYHF.mjs.map +7 -0
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{metrics-PKTV6IGF.mjs → metrics-PRGSYAZJ.mjs} +7 -21
  11. package/dist/lib/browser/metrics-PRGSYAZJ.mjs.map +7 -0
  12. package/dist/lib/browser/{traces-browser-Y4FFWRIR.mjs → traces-browser-XRINKQUA.mjs} +8 -20
  13. package/dist/lib/browser/traces-browser-XRINKQUA.mjs.map +7 -0
  14. package/dist/lib/node-esm/{chunk-FEVP3MK4.mjs → chunk-EDDZWPYV.mjs} +9 -2
  15. package/dist/lib/node-esm/chunk-EDDZWPYV.mjs.map +7 -0
  16. package/dist/lib/node-esm/index.mjs +47 -165
  17. package/dist/lib/node-esm/index.mjs.map +3 -3
  18. package/dist/lib/node-esm/{log-processor-4TIHN5KN.mjs → log-processor-ZODHERST.mjs} +1 -1
  19. package/dist/lib/node-esm/{log-processor-4TIHN5KN.mjs.map → log-processor-ZODHERST.mjs.map} +2 -2
  20. package/dist/lib/node-esm/{logs-7J45KLM7.mjs → logs-ARJUVN3T.mjs} +7 -4
  21. package/dist/lib/node-esm/logs-ARJUVN3T.mjs.map +7 -0
  22. package/dist/lib/node-esm/meta.json +1 -1
  23. package/dist/lib/node-esm/{metrics-H7DDLYSG.mjs → metrics-DREJOOAC.mjs} +7 -21
  24. package/dist/lib/node-esm/metrics-DREJOOAC.mjs.map +7 -0
  25. package/dist/lib/node-esm/{traces-NPNTEOS6.mjs → traces-74F7JUKF.mjs} +8 -20
  26. package/dist/lib/node-esm/traces-74F7JUKF.mjs.map +7 -0
  27. package/dist/types/src/extensions/otel/extension.d.ts.map +1 -1
  28. package/dist/types/src/extensions/otel/extension.js +14 -9
  29. package/dist/types/src/extensions/otel/extension.js.map +1 -1
  30. package/dist/types/src/extensions/otel/logs.d.ts.map +1 -1
  31. package/dist/types/src/extensions/otel/logs.js +6 -3
  32. package/dist/types/src/extensions/otel/logs.js.map +1 -1
  33. package/dist/types/src/extensions/otel/metrics.d.ts.map +1 -1
  34. package/dist/types/src/extensions/otel/metrics.js +2 -2
  35. package/dist/types/src/extensions/otel/metrics.js.map +1 -1
  36. package/dist/types/src/extensions/otel/otel.d.ts +7 -0
  37. package/dist/types/src/extensions/otel/otel.d.ts.map +1 -1
  38. package/dist/types/src/extensions/otel/otel.js +12 -0
  39. package/dist/types/src/extensions/otel/otel.js.map +1 -1
  40. package/dist/types/src/extensions/otel/span-processors.d.ts.map +1 -1
  41. package/dist/types/src/extensions/otel/span-processors.js.map +1 -1
  42. package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -1
  43. package/dist/types/src/extensions/otel/traces-browser.js +2 -1
  44. package/dist/types/src/extensions/otel/traces-browser.js.map +1 -1
  45. package/dist/types/src/extensions/otel/traces.d.ts.map +1 -1
  46. package/dist/types/src/extensions/otel/traces.js +2 -1
  47. package/dist/types/src/extensions/otel/traces.js.map +1 -1
  48. package/dist/types/src/extensions/posthog/extension.d.ts +13 -3
  49. package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -1
  50. package/dist/types/src/extensions/posthog/extension.js +7 -7
  51. package/dist/types/src/extensions/posthog/extension.js.map +1 -1
  52. package/dist/types/src/extensions/posthog/log-processor.test.js.map +1 -1
  53. package/dist/types/src/observability.d.ts.map +1 -1
  54. package/dist/types/src/providers/client-observability.d.ts.map +1 -1
  55. package/dist/types/src/providers/client-observability.js +2 -0
  56. package/dist/types/src/providers/client-observability.js.map +1 -1
  57. package/dist/types/src/providers/ip-data.d.ts.map +1 -1
  58. package/dist/types/src/storage/browser.d.ts.map +1 -1
  59. package/dist/types/src/storage/node.d.ts.map +1 -1
  60. package/dist/types/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +18 -17
  62. package/src/extensions/otel/extension.ts +15 -9
  63. package/src/extensions/otel/logs.ts +6 -3
  64. package/src/extensions/otel/metrics.ts +2 -2
  65. package/src/extensions/otel/otel.ts +13 -0
  66. package/src/extensions/otel/traces-browser.ts +2 -2
  67. package/src/extensions/otel/traces.ts +2 -2
  68. package/src/extensions/posthog/extension.ts +21 -9
  69. package/src/providers/client-observability.ts +2 -0
  70. package/dist/lib/browser/chunk-K4VFBKST.mjs.map +0 -7
  71. package/dist/lib/browser/logs-ATTRIUTL.mjs.map +0 -7
  72. package/dist/lib/browser/metrics-PKTV6IGF.mjs.map +0 -7
  73. package/dist/lib/browser/traces-browser-Y4FFWRIR.mjs.map +0 -7
  74. package/dist/lib/node-esm/chunk-FEVP3MK4.mjs.map +0 -7
  75. package/dist/lib/node-esm/logs-7J45KLM7.mjs.map +0 -7
  76. package/dist/lib/node-esm/metrics-H7DDLYSG.mjs.map +0 -7
  77. 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-K4VFBKST.mjs.map
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-ATTRIUTL.mjs"));
399
- const { OtelMetrics } = yield* Effect3.promise(() => import("./metrics-PKTV6IGF.mjs"));
400
- const { OtelTraces } = yield* Effect3.promise(() => import("./traces-browser-Y4FFWRIR.mjs"));
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 || !headers) {
408
- log3.info("Missing OTEL_ENDPOINT or OTEL_HEADERS", void 0, {
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 { LogBuffer, log as log4 } from "@dxos/log";
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, logBuffer: externalLogBuffer }) {
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-A6PJG6CM.mjs"));
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 && logBuffer.size > 0) {
739
- debugLogDumpKey = await uploadLogs(logBuffer.serialize()) ?? "failed";
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
- F: __dxlog_file5,
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
- invariant2(platform, "platform is required", {
880
- F: __dxlog_file5,
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