@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.
Files changed (85) hide show
  1. package/dist/lib/browser/{chunk-K4VFBKST.mjs → chunk-3534PNWM.mjs} +1 -1
  2. package/dist/lib/browser/{chunk-K4VFBKST.mjs.map → chunk-3534PNWM.mjs.map} +2 -2
  3. package/dist/lib/browser/index.mjs +111 -184
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/{log-processor-FDLTDQEM.mjs → log-processor-HPHWNBOK.mjs} +11 -18
  6. package/dist/lib/browser/log-processor-HPHWNBOK.mjs.map +7 -0
  7. package/dist/lib/browser/{logs-ATTRIUTL.mjs → logs-A2VDAHHD.mjs} +5 -3
  8. package/dist/lib/browser/{logs-ATTRIUTL.mjs.map → logs-A2VDAHHD.mjs.map} +3 -3
  9. package/dist/lib/browser/meta.json +1 -1
  10. package/dist/lib/browser/{metrics-PKTV6IGF.mjs → metrics-6OSN54ZV.mjs} +5 -20
  11. package/dist/lib/browser/{metrics-PKTV6IGF.mjs.map → metrics-6OSN54ZV.mjs.map} +2 -2
  12. package/dist/lib/browser/traces-browser-6MRGAKFC.mjs +151 -0
  13. package/dist/lib/browser/traces-browser-6MRGAKFC.mjs.map +7 -0
  14. package/dist/lib/node-esm/{chunk-FEVP3MK4.mjs → chunk-SYPJQI4L.mjs} +1 -1
  15. package/dist/lib/node-esm/{chunk-FEVP3MK4.mjs.map → chunk-SYPJQI4L.mjs.map} +2 -2
  16. package/dist/lib/node-esm/index.mjs +100 -154
  17. package/dist/lib/node-esm/index.mjs.map +3 -3
  18. package/dist/lib/node-esm/{log-processor-TKJVJJSJ.mjs → log-processor-ZODHERST.mjs} +11 -18
  19. package/dist/lib/node-esm/log-processor-ZODHERST.mjs.map +7 -0
  20. package/dist/lib/node-esm/{logs-7J45KLM7.mjs → logs-TA32MBMW.mjs} +5 -3
  21. package/dist/lib/node-esm/{logs-7J45KLM7.mjs.map → logs-TA32MBMW.mjs.map} +3 -3
  22. package/dist/lib/node-esm/meta.json +1 -1
  23. package/dist/lib/node-esm/{metrics-H7DDLYSG.mjs → metrics-C5IKPAWD.mjs} +5 -20
  24. package/dist/lib/node-esm/{metrics-H7DDLYSG.mjs.map → metrics-C5IKPAWD.mjs.map} +2 -2
  25. package/dist/lib/node-esm/traces-5LKHMVVG.mjs +122 -0
  26. package/dist/lib/node-esm/traces-5LKHMVVG.mjs.map +7 -0
  27. package/dist/types/src/cli-observability-secrets.json +2 -2
  28. package/dist/types/src/extensions/otel/extension.d.ts.map +1 -1
  29. package/dist/types/src/extensions/otel/extension.js +83 -6
  30. package/dist/types/src/extensions/otel/extension.js.map +1 -1
  31. package/dist/types/src/extensions/otel/logs.d.ts.map +1 -1
  32. package/dist/types/src/extensions/otel/logs.js +4 -1
  33. package/dist/types/src/extensions/otel/logs.js.map +1 -1
  34. package/dist/types/src/extensions/otel/metrics.d.ts.map +1 -1
  35. package/dist/types/src/extensions/otel/metrics.js.map +1 -1
  36. package/dist/types/src/extensions/otel/otel.d.ts.map +1 -1
  37. package/dist/types/src/extensions/otel/span-processors.d.ts +25 -0
  38. package/dist/types/src/extensions/otel/span-processors.d.ts.map +1 -0
  39. package/dist/types/src/extensions/otel/span-processors.js +41 -0
  40. package/dist/types/src/extensions/otel/span-processors.js.map +1 -0
  41. package/dist/types/src/extensions/otel/traces-browser.d.ts +17 -0
  42. package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -1
  43. package/dist/types/src/extensions/otel/traces-browser.js +53 -34
  44. package/dist/types/src/extensions/otel/traces-browser.js.map +1 -1
  45. package/dist/types/src/extensions/otel/traces.d.ts +17 -0
  46. package/dist/types/src/extensions/otel/traces.d.ts.map +1 -1
  47. package/dist/types/src/extensions/otel/traces.js +57 -8
  48. package/dist/types/src/extensions/otel/traces.js.map +1 -1
  49. package/dist/types/src/extensions/posthog/extension.d.ts +7 -3
  50. package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -1
  51. package/dist/types/src/extensions/posthog/extension.js +7 -7
  52. package/dist/types/src/extensions/posthog/extension.js.map +1 -1
  53. package/dist/types/src/extensions/posthog/log-processor.d.ts.map +1 -1
  54. package/dist/types/src/extensions/posthog/log-processor.js +10 -19
  55. package/dist/types/src/extensions/posthog/log-processor.js.map +1 -1
  56. package/dist/types/src/extensions/posthog/log-processor.test.js +2 -2
  57. package/dist/types/src/extensions/posthog/log-processor.test.js.map +1 -1
  58. package/dist/types/src/observability.d.ts.map +1 -1
  59. package/dist/types/src/providers/client-observability.d.ts.map +1 -1
  60. package/dist/types/src/providers/client-observability.js +2 -0
  61. package/dist/types/src/providers/client-observability.js.map +1 -1
  62. package/dist/types/src/providers/ip-data.d.ts.map +1 -1
  63. package/dist/types/src/storage/browser.d.ts.map +1 -1
  64. package/dist/types/src/storage/browser.js +10 -0
  65. package/dist/types/src/storage/browser.js.map +1 -1
  66. package/dist/types/src/storage/node.d.ts.map +1 -1
  67. package/dist/types/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +19 -16
  69. package/src/cli-observability-secrets.json +2 -2
  70. package/src/extensions/otel/extension.ts +87 -7
  71. package/src/extensions/otel/logs.ts +4 -1
  72. package/src/extensions/otel/span-processors.ts +45 -0
  73. package/src/extensions/otel/traces-browser.ts +68 -39
  74. package/src/extensions/otel/traces.ts +74 -10
  75. package/src/extensions/posthog/extension.ts +14 -9
  76. package/src/extensions/posthog/log-processor.test.ts +7 -6
  77. package/src/extensions/posthog/log-processor.ts +10 -21
  78. package/src/providers/client-observability.ts +2 -0
  79. package/src/storage/browser.ts +9 -0
  80. package/dist/lib/browser/log-processor-FDLTDQEM.mjs.map +0 -7
  81. package/dist/lib/browser/traces-browser-PUNCJ5KV.mjs +0 -112
  82. package/dist/lib/browser/traces-browser-PUNCJ5KV.mjs.map +0 -7
  83. package/dist/lib/node-esm/log-processor-TKJVJJSJ.mjs.map +0 -7
  84. package/dist/lib/node-esm/traces-KMTHMYFX.mjs +0 -44
  85. package/dist/lib/node-esm/traces-KMTHMYFX.mjs.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/metrics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/otel.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,SAK3C,CAAC"}
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/otel.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,SAK3C,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { type Context } from '@opentelemetry/api';
2
+ import { type ReadableSpan, type Span, type SpanProcessor } from '@opentelemetry/sdk-trace-base';
3
+ /**
4
+ * Injects dynamic tags as attributes on every span.
5
+ *
6
+ * This is an `onStart`-only processor; `onEnd`/`shutdown`/`forceFlush` are no-ops
7
+ * because this processor never holds pending work (delegates export to downstream
8
+ * processors like BatchSpanProcessor).
9
+ *
10
+ * Use for tags that are not known at provider construction (e.g. identity
11
+ * resolved asynchronously after login). For values known at startup, prefer
12
+ * putting them on the `Resource` — see `extension.ts`.
13
+ *
14
+ * Failures in the tag provider are swallowed so they can never break span
15
+ * recording (the processor is best-effort and runs on the startSpan hot path).
16
+ */
17
+ export declare class TagInjectorSpanProcessor implements SpanProcessor {
18
+ private readonly _getTags;
19
+ constructor(_getTags: () => Record<string, string>);
20
+ onStart(span: Span, _parentContext: Context): void;
21
+ onEnd(_span: ReadableSpan): void;
22
+ shutdown(): Promise<void>;
23
+ forceFlush(): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=span-processors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-processors.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/span-processors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,IAAI,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAIjG;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAyB,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAArC,YAA6B,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAI;IAEvE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI,CAWjD;IAED,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAG;IAE7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAE5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;CACrC"}
@@ -0,0 +1,41 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ import { log } from '@dxos/log';
5
+ /**
6
+ * Injects dynamic tags as attributes on every span.
7
+ *
8
+ * This is an `onStart`-only processor; `onEnd`/`shutdown`/`forceFlush` are no-ops
9
+ * because this processor never holds pending work (delegates export to downstream
10
+ * processors like BatchSpanProcessor).
11
+ *
12
+ * Use for tags that are not known at provider construction (e.g. identity
13
+ * resolved asynchronously after login). For values known at startup, prefer
14
+ * putting them on the `Resource` — see `extension.ts`.
15
+ *
16
+ * Failures in the tag provider are swallowed so they can never break span
17
+ * recording (the processor is best-effort and runs on the startSpan hot path).
18
+ */
19
+ export class TagInjectorSpanProcessor {
20
+ _getTags;
21
+ constructor(_getTags) {
22
+ this._getTags = _getTags;
23
+ }
24
+ onStart(span, _parentContext) {
25
+ let tags;
26
+ try {
27
+ tags = this._getTags();
28
+ }
29
+ catch (err) {
30
+ log.catch(err);
31
+ return;
32
+ }
33
+ for (const [key, value] of Object.entries(tags)) {
34
+ span.setAttribute(key, value);
35
+ }
36
+ }
37
+ onEnd(_span) { }
38
+ async shutdown() { }
39
+ async forceFlush() { }
40
+ }
41
+ //# sourceMappingURL=span-processors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-processors.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/span-processors.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAKF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAwB;IACN,QAAQ;IAArC,YAA6B,QAAsC;wBAAtC,QAAQ;IAAiC,CAAC;IAEvE,OAAO,CAAC,IAAU,EAAE,cAAuB;QACzC,IAAI,IAA4B,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAmB,IAAS,CAAC;IAEnC,KAAK,CAAC,QAAQ,KAAmB,CAAC;IAElC,KAAK,CAAC,UAAU,KAAmB,CAAC;CACrC"}
@@ -2,7 +2,24 @@ import { type OtelOptions } from './otel';
2
2
  export declare class OtelTraces {
3
3
  private readonly options;
4
4
  private _tracer;
5
+ private readonly _tracerProvider;
5
6
  constructor(options: OtelOptions);
7
+ /**
8
+ * Forcibly flush the BatchSpanProcessor. Call before process exit / page unload
9
+ * to avoid losing queued spans (which manifests as "Missing Span" in SigNoz —
10
+ * their already-exported children reference a parent that never made it to OTLP).
11
+ */
12
+ flush(): Promise<void>;
13
+ /**
14
+ * Flush + shut down the tracer provider via `WebTracerProvider.shutdown()`,
15
+ * which forces a final export then terminates all span processors.
16
+ *
17
+ * Terminal and effectively one-shot: safe to call after `flush()`, but
18
+ * `flush()` MUST NOT be called after `close()` — shutdown stops further
19
+ * exporting, so subsequent `close()`/`flush()` calls resolve without
20
+ * emitting new spans.
21
+ */
22
+ close(): Promise<void>;
6
23
  start(): void;
7
24
  }
8
25
  //# sourceMappingURL=traces-browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces-browser.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces-browser.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAsB1C,qBAAa,UAAU;IAGT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAS;gBAEK,OAAO,EAAE,WAAW;IA+B1C,KAAK,IAAI,IAAI;CA8BrB"}
1
+ {"version":3,"file":"traces-browser.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces-browser.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IAEpD,YAA6B,OAAO,EAAE,WAAW,EA6BhD;IAED;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAElC;IAED;;;;;;;;OAQG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAElC;IAEM,KAAK,IAAI,IAAI,CAiDnB;CACF"}
@@ -1,7 +1,7 @@
1
1
  //
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
- import { context as otelContext, propagation, trace } from '@opentelemetry/api';
4
+ import { ROOT_CONTEXT, SpanStatusCode, context as otelContext, propagation, trace, } from '@opentelemetry/api';
5
5
  import { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';
6
6
  import { W3CTraceContextPropagator } from '@opentelemetry/core';
7
7
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
@@ -10,33 +10,17 @@ import { AlwaysOnSampler, BatchSpanProcessor, ParentBasedSampler, TraceIdRatioBa
10
10
  import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
11
11
  import { ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
12
12
  import { log } from '@dxos/log';
13
- import { TRACE_PROCESSOR } from '@dxos/tracing';
14
- /**
15
- * Injects dynamic tags (e.g. userId) as attributes on every span.
16
- */
17
- class TagInjectorSpanProcessor {
18
- _getTags;
19
- constructor(_getTags) {
20
- this._getTags = _getTags;
21
- }
22
- onStart(span) {
23
- const tags = this._getTags();
24
- for (const [key, value] of Object.entries(tags)) {
25
- span.setAttribute(key, value);
26
- }
27
- }
28
- onEnd(_span) { }
29
- async shutdown() { }
30
- async forceFlush() { }
31
- }
13
+ import { TRACE_ALL_KEY, TRACE_PROCESSOR } from '@dxos/tracing';
14
+ import { TagInjectorSpanProcessor } from './span-processors';
32
15
  export class OtelTraces {
33
16
  options;
34
17
  _tracer;
18
+ _tracerProvider;
35
19
  constructor(options) {
36
20
  this.options = options;
37
21
  propagation.setGlobalPropagator(new W3CTraceContextPropagator());
38
- const forceTraceAll = typeof localStorage !== 'undefined' && localStorage.getItem('dxos.debug.traceAll') === 'true';
39
- const tracerProvider = new WebTracerProvider({
22
+ const forceTraceAll = typeof localStorage !== 'undefined' && localStorage.getItem(TRACE_ALL_KEY) === 'true';
23
+ this._tracerProvider = new WebTracerProvider({
40
24
  resource: this.options.resource,
41
25
  sampler: new ParentBasedSampler({
42
26
  root: forceTraceAll ? new AlwaysOnSampler() : new TraceIdRatioBasedSampler(0.3),
@@ -50,36 +34,71 @@ export class OtelTraces {
50
34
  }), { scheduledDelayMillis: 5_000 }),
51
35
  ],
52
36
  });
53
- trace.setGlobalTracerProvider(tracerProvider);
37
+ trace.setGlobalTracerProvider(this._tracerProvider);
54
38
  this._tracer = trace.getTracer('dxos-observability', this.options.resource.attributes[ATTR_SERVICE_VERSION]?.toString());
55
39
  }
40
+ /**
41
+ * Forcibly flush the BatchSpanProcessor. Call before process exit / page unload
42
+ * to avoid losing queued spans (which manifests as "Missing Span" in SigNoz —
43
+ * their already-exported children reference a parent that never made it to OTLP).
44
+ */
45
+ async flush() {
46
+ await this._tracerProvider.forceFlush();
47
+ }
48
+ /**
49
+ * Flush + shut down the tracer provider via `WebTracerProvider.shutdown()`,
50
+ * which forces a final export then terminates all span processors.
51
+ *
52
+ * Terminal and effectively one-shot: safe to call after `flush()`, but
53
+ * `flush()` MUST NOT be called after `close()` — shutdown stops further
54
+ * exporting, so subsequent `close()`/`flush()` calls resolve without
55
+ * emitting new spans.
56
+ */
57
+ async close() {
58
+ await this._tracerProvider.shutdown();
59
+ }
56
60
  start() {
57
61
  log('trace processor registered');
58
62
  registerInstrumentations({
59
63
  instrumentations: [
60
64
  getWebAutoInstrumentations({
61
- // Fetch is disabled in favor of explicit ctx on our call sites; if re-enabled, keep noisy
62
- // third-party URLs out of traces (matches prior browser tracing setup).
63
65
  '@opentelemetry/instrumentation-fetch': { enabled: false, ignoreUrls: [/api\.ipdata\.co/] },
64
66
  '@opentelemetry/instrumentation-document-load': { enabled: false },
65
67
  '@opentelemetry/instrumentation-xml-http-request': { enabled: false },
68
+ '@opentelemetry/instrumentation-user-interaction': { enabled: false },
66
69
  }),
67
70
  ],
68
71
  });
69
- TRACE_PROCESSOR.remoteTracing.registerProcessor({
72
+ const tracer = this._tracer;
73
+ TRACE_PROCESSOR.tracingBackend = {
70
74
  startSpan: (options) => {
71
75
  log('begin otel trace', { options });
72
- const explicitParent = options.parentContext;
73
- const parentCtx = explicitParent ?? otelContext.active();
74
- const span = this._tracer.startSpan(options.name, options, parentCtx);
75
- const spanCtx = trace.setSpan(parentCtx, span);
76
+ const parentCtx = options.parentContext
77
+ ? propagation.extract(ROOT_CONTEXT, {
78
+ traceparent: options.parentContext.traceparent,
79
+ tracestate: options.parentContext.tracestate ?? '',
80
+ })
81
+ : otelContext.active();
82
+ const span = tracer.startSpan(options.name, options, parentCtx);
83
+ const sc = span.spanContext();
84
+ const spanContext = sc && sc.traceId && sc.spanId
85
+ ? {
86
+ traceparent: `00-${sc.traceId}-${sc.spanId}-${(sc.traceFlags ?? 0).toString(16).padStart(2, '0')}`,
87
+ tracestate: sc.traceState?.serialize(),
88
+ }
89
+ : undefined;
76
90
  return {
77
- end: () => span.end(),
78
- wrapExecution: (fn) => otelContext.with(spanCtx, fn),
79
- spanContext: spanCtx,
91
+ end: (endTime) => span.end(endTime),
92
+ setError: (err) => {
93
+ if (err instanceof Error) {
94
+ span.recordException(err);
95
+ }
96
+ span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
97
+ },
98
+ spanContext,
80
99
  };
81
100
  },
82
- });
101
+ };
83
102
  }
84
103
  }
85
104
  //# sourceMappingURL=traces-browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces-browser.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traces-browser.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces-browser.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,24 @@ import { type OtelOptions } from './otel';
2
2
  export declare class OtelTraces {
3
3
  private readonly options;
4
4
  private _tracer;
5
+ private readonly _tracerProvider;
5
6
  constructor(options: OtelOptions);
7
+ /**
8
+ * Forcibly flush the BatchSpanProcessor. Call before process exit to avoid
9
+ * losing queued spans (which manifests as "Missing Span" in SigNoz — their
10
+ * already-exported children reference a parent that never made it to OTLP).
11
+ */
12
+ flush(): Promise<void>;
13
+ /**
14
+ * Flush + shut down the tracer provider via `BasicTracerProvider.shutdown()`,
15
+ * which forces a final export then terminates all span processors.
16
+ *
17
+ * Terminal and effectively one-shot: safe to call after `flush()`, but
18
+ * `flush()` MUST NOT be called after `close()` — shutdown stops further
19
+ * exporting, so subsequent `close()`/`flush()` calls resolve without
20
+ * emitting new spans.
21
+ */
22
+ close(): Promise<void>;
6
23
  start(): void;
7
24
  }
8
25
  //# sourceMappingURL=traces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,qBAAa,UAAU;IAGT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,OAAO,CAAS;gBAEK,OAAO,EAAE,WAAW;IAqB1C,KAAK,IAAI,IAAI;CAUrB"}
1
+ {"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IAEtD,YAA6B,OAAO,EAAE,WAAW,EAsBhD;IAED;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAElC;IAED;;;;;;;;OAQG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAElC;IAEM,KAAK,IAAI,IAAI,CAsCnB;CACF"}
@@ -1,38 +1,87 @@
1
1
  //
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
- import { trace } from '@opentelemetry/api';
4
+ import { ROOT_CONTEXT, SpanStatusCode, context as otelContext, propagation, trace, } from '@opentelemetry/api';
5
+ import { W3CTraceContextPropagator } from '@opentelemetry/core';
5
6
  import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
6
7
  import { BasicTracerProvider, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
7
8
  import { ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
8
- import { log } from 'debug';
9
+ import { log } from '@dxos/log';
9
10
  import { TRACE_PROCESSOR } from '@dxos/tracing';
11
+ import { TagInjectorSpanProcessor } from './span-processors';
10
12
  export class OtelTraces {
11
13
  options;
12
14
  _tracer;
15
+ _tracerProvider;
13
16
  constructor(options) {
14
17
  this.options = options;
15
- const tracerProvider = new BasicTracerProvider({
18
+ propagation.setGlobalPropagator(new W3CTraceContextPropagator());
19
+ this._tracerProvider = new BasicTracerProvider({
16
20
  resource: this.options.resource,
17
21
  spanProcessors: [
22
+ new TagInjectorSpanProcessor(this.options.getTags),
18
23
  new BatchSpanProcessor(new OTLPTraceExporter({
19
24
  url: this.options.endpoint + '/v1/traces',
20
25
  headers: this.options.headers,
21
- concurrencyLimit: 10, // an optional limit on pending requests
26
+ concurrencyLimit: 10,
22
27
  })),
23
28
  ],
24
29
  });
25
- trace.setGlobalTracerProvider(tracerProvider);
30
+ trace.setGlobalTracerProvider(this._tracerProvider);
26
31
  this._tracer = trace.getTracer('dxos-observability', this.options.resource.attributes[ATTR_SERVICE_VERSION]?.toString());
27
32
  }
33
+ /**
34
+ * Forcibly flush the BatchSpanProcessor. Call before process exit to avoid
35
+ * losing queued spans (which manifests as "Missing Span" in SigNoz — their
36
+ * already-exported children reference a parent that never made it to OTLP).
37
+ */
38
+ async flush() {
39
+ await this._tracerProvider.forceFlush();
40
+ }
41
+ /**
42
+ * Flush + shut down the tracer provider via `BasicTracerProvider.shutdown()`,
43
+ * which forces a final export then terminates all span processors.
44
+ *
45
+ * Terminal and effectively one-shot: safe to call after `flush()`, but
46
+ * `flush()` MUST NOT be called after `close()` — shutdown stops further
47
+ * exporting, so subsequent `close()`/`flush()` calls resolve without
48
+ * emitting new spans.
49
+ */
50
+ async close() {
51
+ await this._tracerProvider.shutdown();
52
+ }
28
53
  start() {
29
54
  log('trace processor registered');
30
- TRACE_PROCESSOR.remoteTracing.registerProcessor({
55
+ const tracer = this._tracer;
56
+ TRACE_PROCESSOR.tracingBackend = {
31
57
  startSpan: (options) => {
32
58
  log('begin otel trace', { options });
33
- return this._tracer.startSpan(options.name, options);
59
+ const parentCtx = options.parentContext
60
+ ? propagation.extract(ROOT_CONTEXT, {
61
+ traceparent: options.parentContext.traceparent,
62
+ tracestate: options.parentContext.tracestate ?? '',
63
+ })
64
+ : otelContext.active();
65
+ const span = tracer.startSpan(options.name, options, parentCtx);
66
+ const sc = span.spanContext();
67
+ const spanContext = sc && sc.traceId && sc.spanId
68
+ ? {
69
+ traceparent: `00-${sc.traceId}-${sc.spanId}-${(sc.traceFlags ?? 0).toString(16).padStart(2, '0')}`,
70
+ tracestate: sc.traceState?.serialize(),
71
+ }
72
+ : undefined;
73
+ return {
74
+ end: (endTime) => span.end(endTime),
75
+ setError: (err) => {
76
+ if (err instanceof Error) {
77
+ span.recordException(err);
78
+ }
79
+ span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });
80
+ },
81
+ spanContext,
82
+ };
34
83
  },
35
- });
84
+ };
36
85
  }
37
86
  }
38
87
  //# sourceMappingURL=traces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,EAAe,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,EAAyB,eAAe,EAAE,MAAM,eAAe,CAAC;AAIvE,MAAM,OAAO,UAAU;IAGQ;IAFrB,OAAO,CAAS;IAExB,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAC/C,MAAM,cAAc,GAAG,IAAI,mBAAmB,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,cAAc,EAAE;gBACd,IAAI,kBAAkB,CACpB,IAAI,iBAAiB,CAAC;oBACpB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY;oBACzC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,gBAAgB,EAAE,EAAE,EAAE,wCAAwC;iBAC/D,CAAC,CACH;aACF;SACF,CAAC,CAAC;QAEH,KAAK,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAC5B,oBAAoB,EACpB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CACnE,CAAC;IACJ,CAAC;IAEM,KAAK;QACV,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAElC,eAAe,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC9C,SAAS,EAAE,CAAC,OAAyB,EAAE,EAAE;gBACvC,GAAG,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/traces.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as Effect from 'effect/Effect';
2
2
  import { type PostHogConfig } from 'posthog-js';
3
3
  import { type Config } from '@dxos/config';
4
- import { LogBuffer } from '@dxos/log';
4
+ import { type IdbLogStore } from '@dxos/log-store-idb';
5
5
  import { type Extension } from '../../observability-extension';
6
6
  export type ExtensionsOptions = {
7
7
  config: Config;
@@ -10,8 +10,12 @@ export type ExtensionsOptions = {
10
10
  /** Deployment environment, e.g. `production` or `staging`. */
11
11
  environment?: string;
12
12
  posthog?: Partial<PostHogConfig>;
13
- /** Shared log buffer for debug log dumps. Creates a local one if not provided. */
14
- logBuffer?: LogBuffer;
13
+ /**
14
+ * Shared persistent log store for debug log dumps.
15
+ * The owning app is expected to register `logStore.processor` with `log` itself —
16
+ * this extension only consumes the buffered logs (via `export()`).
17
+ */
18
+ logStore?: IdbLogStore;
15
19
  };
16
20
  /** Create a PostHog-backed observability extension for events, errors, and feedback. */
17
21
  export declare const extensions: (options: ExtensionsOptions) => Effect.Effect<Extension>;
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/posthog/extension.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAO,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAsBF,wFAAwF;AACxF,eAAO,MAAM,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAkI9E,CAAC"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/posthog/extension.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAsBF,wFAAwF;AACxF,eAAO,MAAM,UAAU,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAkI9E,CAAC"}
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
  import * as Effect from 'effect/Effect';
5
- import { LogBuffer, log } from '@dxos/log';
5
+ import { log } from '@dxos/log';
6
6
  import { stubExtension } from '../stub';
7
7
  /** Upload serialized logs to the feedback-logs endpoint. Returns the R2 key on success. */
8
8
  const uploadLogs = async (body) => {
@@ -25,7 +25,7 @@ const uploadLogs = async (body) => {
25
25
  }
26
26
  };
27
27
  /** Create a PostHog-backed observability extension for events, errors, and feedback. */
28
- export const extensions = Effect.fn(function* ({ config, release, environment, posthog: posthogConfig, logBuffer: externalLogBuffer, }) {
28
+ export const extensions = Effect.fn(function* ({ config, release, environment, posthog: posthogConfig, logStore, }) {
29
29
  if (typeof window === 'undefined') {
30
30
  log('PostHog is being stubbed because it is running in a worker.');
31
31
  return stubExtension;
@@ -39,7 +39,6 @@ export const extensions = Effect.fn(function* ({ config, release, environment, p
39
39
  }
40
40
  const { default: posthog } = yield* Effect.promise(() => import('posthog-js'));
41
41
  const { logProcessor } = yield* Effect.promise(() => import('./log-processor'));
42
- const logBuffer = externalLogBuffer ?? new LogBuffer();
43
42
  let feedbackSurveyAvailable = null;
44
43
  let unregisterPosthogProcessors;
45
44
  const checkFeedbackSurveyAvailable = () => feedbackSurveyId
@@ -73,10 +72,8 @@ export const extensions = Effect.fn(function* ({ config, release, environment, p
73
72
  }
74
73
  unregisterPosthogProcessors?.();
75
74
  const removePosthogLog = log.addProcessor(logProcessor);
76
- const removeLogBuffer = log.addProcessor(logBuffer.logProcessor);
77
75
  unregisterPosthogProcessors = () => {
78
76
  removePosthogLog();
79
- removeLogBuffer();
80
77
  };
81
78
  }),
82
79
  close: () => Effect.sync(() => {
@@ -123,8 +120,11 @@ export const extensions = Effect.fn(function* ({ config, release, environment, p
123
120
  return;
124
121
  }
125
122
  let debugLogDumpKey = null;
126
- if (form.includeLogs !== false && logBuffer.size > 0) {
127
- debugLogDumpKey = (await uploadLogs(logBuffer.serialize())) ?? 'failed';
123
+ if (form.includeLogs !== false && logStore !== undefined) {
124
+ const ndjson = await logStore.export();
125
+ if (ndjson.length > 0) {
126
+ debugLogDumpKey = (await uploadLogs(ndjson)) ?? 'failed';
127
+ }
128
128
  }
129
129
  // https://posthog.com/docs/surveys/implementing-custom-surveys
130
130
  const question = survey.questions[0];
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../src/extensions/posthog/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../../../../../src/extensions/posthog/extension.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/posthog/log-processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2C,KAAK,YAAY,EAAa,MAAM,WAAW,CAAC;AAElG,eAAO,MAAM,YAAY,EAAE,YAgC1B,CAAC"}
1
+ {"version":3,"file":"log-processor.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/posthog/log-processor.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2C,KAAK,YAAY,EAAa,MAAM,WAAW,CAAC;AAElG,eAAO,MAAM,YAAY,EAAE,YAiC1B,CAAC"}
@@ -17,29 +17,20 @@ export const logProcessor = (config, entry) => {
17
17
  return;
18
18
  }
19
19
  const additionalProperties = {};
20
- if (entry.meta) {
21
- additionalProperties.transaction = `${getRelativeFilename(entry.meta.F)}:${entry.meta.L}`;
22
- if (entry.meta.S?.hostSessionId) {
23
- additionalProperties.service_host_issue = true;
24
- additionalProperties.service_host_session = entry.meta.S?.hostSessionId;
25
- }
26
- if (entry.meta.S?.uptimeSeconds != null) {
27
- additionalProperties.uptime_seconds = entry.meta.S.uptimeSeconds;
28
- }
20
+ const { filename, line } = entry.computedMeta;
21
+ if (filename !== undefined && line !== undefined) {
22
+ additionalProperties.transaction = `${filename}:${line}`;
23
+ }
24
+ if (entry.meta?.S?.hostSessionId) {
25
+ additionalProperties.service_host_issue = true;
26
+ additionalProperties.service_host_session = entry.meta.S.hostSessionId;
27
+ }
28
+ if (entry.meta?.S?.uptimeSeconds != null) {
29
+ additionalProperties.uptime_seconds = entry.meta.S.uptimeSeconds;
29
30
  }
30
31
  if (capturedError instanceof InvariantViolation) {
31
32
  additionalProperties.invariant_violation = true;
32
33
  }
33
34
  posthog.captureException(capturedError, additionalProperties);
34
35
  };
35
- const getRelativeFilename = (filename) => {
36
- // TODO(burdon): Hack uses "packages" as an anchor (pre-parse NX?)
37
- // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.
38
- const match = filename.match(/.+\/(packages\/.+\/.+)/);
39
- if (match) {
40
- const [, filePath] = match;
41
- return filePath;
42
- }
43
- return filename;
44
- };
45
36
  //# sourceMappingURL=log-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-processor.js","sourceRoot":"","sources":["../../../../../src/extensions/posthog/log-processor.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAiC,QAAQ,EAAqB,SAAS,EAAE,MAAM,WAAW,CAAC;AAElG,MAAM,CAAC,MAAM,YAAY,GAAiB,CAAC,MAAiB,EAAE,KAAe,EAAE,EAAE;IAC/E,2CAA2C;IAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,IAAI,aAAa,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5D,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,oBAAoB,GAA8C,EAAE,CAAC;IAC3E,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,oBAAoB,CAAC,WAAW,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YAChC,oBAAoB,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/C,oBAAoB,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,CAAC;QAC1E,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;YACxC,oBAAoB,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;QACnE,CAAC;IACH,CAAC;IAED,IAAI,aAAa,YAAY,kBAAkB,EAAE,CAAC;QAChD,oBAAoB,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC/C,kEAAkE;IAClE,0GAA0G;IAC1G,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACvD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"log-processor.js","sourceRoot":"","sources":["../../../../../src/extensions/posthog/log-processor.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAiC,QAAQ,EAAqB,SAAS,EAAE,MAAM,WAAW,CAAC;AAElG,MAAM,CAAC,MAAM,YAAY,GAAiB,CAAC,MAAiB,EAAE,KAAe,EAAE,EAAE;IAC/E,2CAA2C;IAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,IAAI,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;IAChC,IAAI,aAAa,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5D,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAc,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,oBAAoB,GAA8C,EAAE,CAAC;IAC3E,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;IAC9C,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjD,oBAAoB,CAAC,WAAW,GAAG,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC;QACjC,oBAAoB,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/C,oBAAoB,CAAC,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;IACzE,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC;QACzC,oBAAoB,CAAC,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;IACnE,CAAC;IAED,IAAI,aAAa,YAAY,kBAAkB,EAAE,CAAC;QAChD,oBAAoB,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAChE,CAAC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  //
4
4
  import { beforeEach, describe, expect, test, vi } from 'vitest';
5
5
  import { InvariantViolation } from '@dxos/invariant';
6
- import { LogLevel } from '@dxos/log';
6
+ import { LogEntry, LogLevel } from '@dxos/log';
7
7
  // Replace the posthog-js module with a stub so log-processor's top-level import resolves to our mock.
8
8
  // Dynamic imports are used so that both the mock and log-processor are loaded after vi.mock is hoisted.
9
9
  vi.mock('posthog-js', () => ({
@@ -18,7 +18,7 @@ const baseConfig = {
18
18
  captureFilters: [{ level: LogLevel.WARN }],
19
19
  processors: [],
20
20
  };
21
- const createEntry = (overrides = {}) => ({
21
+ const createEntry = (overrides = {}) => new LogEntry({
22
22
  level: LogLevel.ERROR,
23
23
  message: 'test error',
24
24
  ...overrides,