@dxos/tracing 0.8.3 → 0.8.4-main.1068cf700f

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.
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
- // packages/common/tracing/src/api.ts
3
+ // src/api.ts
4
4
  import { Context as Context2 } from "@dxos/context";
5
5
 
6
- // packages/common/tracing/src/symbols.ts
6
+ // src/symbols.ts
7
7
  var symbolTracingContext = Symbol("dxos.tracing.context");
8
8
  var getTracingContext = (target) => {
9
9
  return target[symbolTracingContext] ??= {
@@ -13,22 +13,26 @@ var getTracingContext = (target) => {
13
13
  };
14
14
  var TRACE_SPAN_ATTRIBUTE = "dxos.trace-span";
15
15
 
16
- // packages/common/tracing/src/trace-processor.ts
16
+ // src/trace-processor.ts
17
17
  import { unrefTimeout } from "@dxos/async";
18
18
  import { LogLevel, getContextFromEntry, log } from "@dxos/log";
19
19
  import { getPrototypeSpecificInstanceId } from "@dxos/util";
20
20
 
21
- // packages/common/tracing/src/diagnostic.ts
21
+ // src/diagnostic.ts
22
22
  import { asyncTimeout } from "@dxos/async";
23
23
  import { invariant } from "@dxos/invariant";
24
24
 
25
- // packages/common/tracing/src/util.ts
25
+ // src/util.ts
26
26
  var createId = () => Math.random().toString(36).slice(2);
27
27
 
28
- // packages/common/tracing/src/diagnostic.ts
29
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/common/tracing/src/diagnostic.ts";
28
+ // src/diagnostic.ts
29
+ var __dxlog_file = "/__w/dxos/dxos/packages/common/tracing/src/diagnostic.ts";
30
30
  var DIAGNOSTICS_TIMEOUT = 1e4;
31
31
  var TraceDiagnosticImpl = class {
32
+ id;
33
+ fetch;
34
+ name;
35
+ _onUnregister;
32
36
  constructor(id, fetch, name, _onUnregister) {
33
37
  this.id = id;
34
38
  this.fetch = fetch;
@@ -40,11 +44,9 @@ var TraceDiagnosticImpl = class {
40
44
  }
41
45
  };
42
46
  var DiagnosticsManager = class {
43
- constructor() {
44
- this.instanceId = createId();
45
- this.registry = /* @__PURE__ */ new Map();
46
- this._instanceTag = null;
47
- }
47
+ instanceId = createId();
48
+ registry = /* @__PURE__ */ new Map();
49
+ _instanceTag = null;
48
50
  get instanceTag() {
49
51
  return this._instanceTag;
50
52
  }
@@ -109,25 +111,27 @@ var DiagnosticsManager = class {
109
111
  }
110
112
  };
111
113
 
112
- // packages/common/tracing/src/diagnostics-channel.ts
114
+ // src/diagnostics-channel.ts
113
115
  import { Trigger, sleep } from "@dxos/async";
114
116
  import { Context } from "@dxos/context";
115
117
  import { invariant as invariant2 } from "@dxos/invariant";
116
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/diagnostics-channel.ts";
118
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/common/tracing/src/diagnostics-channel.ts";
117
119
  var DEFAULT_CHANNEL_NAME = "dxos-diagnostics";
118
120
  var DISCOVER_TIME = 500;
119
121
  var DiagnosticsChannel = class _DiagnosticsChannel {
122
+ _channelName;
120
123
  static get supported() {
121
124
  return globalThis.BroadcastChannel != null;
122
125
  }
126
+ _ctx = new Context(void 0, {
127
+ F: __dxlog_file2,
128
+ L: 46
129
+ });
130
+ // Separate channels becauase the client and server may be in the same process.
131
+ _serveChannel = void 0;
132
+ _clientChannel = void 0;
123
133
  constructor(_channelName = DEFAULT_CHANNEL_NAME) {
124
134
  this._channelName = _channelName;
125
- this._ctx = new Context(void 0, {
126
- F: __dxlog_file2,
127
- L: 46
128
- });
129
- this._serveChannel = void 0;
130
- this._clientChannel = void 0;
131
135
  if (_DiagnosticsChannel.supported) {
132
136
  this._serveChannel = new BroadcastChannel(_channelName);
133
137
  this._clientChannel = new BroadcastChannel(_channelName);
@@ -260,11 +264,9 @@ var DiagnosticsChannel = class _DiagnosticsChannel {
260
264
  }
261
265
  };
262
266
 
263
- // packages/common/tracing/src/remote/metrics.ts
267
+ // src/remote/metrics.ts
264
268
  var RemoteMetrics = class {
265
- constructor() {
266
- this._metrics = /* @__PURE__ */ new Set();
267
- }
269
+ _metrics = /* @__PURE__ */ new Set();
268
270
  registerProcessor(processor) {
269
271
  this._metrics.add(processor);
270
272
  }
@@ -282,11 +284,10 @@ var RemoteMetrics = class {
282
284
  }
283
285
  };
284
286
 
285
- // packages/common/tracing/src/remote/tracing.ts
287
+ // src/remote/tracing.ts
286
288
  var RemoteTracing = class {
287
- constructor() {
288
- this._spanMap = /* @__PURE__ */ new Map();
289
- }
289
+ _tracing;
290
+ _spanMap = /* @__PURE__ */ new Map();
290
291
  registerProcessor(processor) {
291
292
  this._tracing = processor;
292
293
  }
@@ -311,9 +312,10 @@ var RemoteTracing = class {
311
312
  }
312
313
  };
313
314
 
314
- // packages/common/tracing/src/trace-sender.ts
315
+ // src/trace-sender.ts
315
316
  import { Stream } from "@dxos/codec-protobuf/stream";
316
317
  var TraceSender = class {
318
+ _traceProcessor;
317
319
  constructor(_traceProcessor) {
318
320
  this._traceProcessor = _traceProcessor;
319
321
  }
@@ -400,7 +402,7 @@ var TraceSender = class {
400
402
  }
401
403
  };
402
404
 
403
- // packages/common/tracing/src/weak-ref.ts
405
+ // src/weak-ref.ts
404
406
  var WeakRefMock = class {
405
407
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
406
408
  constructor(target) {
@@ -411,9 +413,18 @@ var WeakRefMock = class {
411
413
  };
412
414
  var WeakRef = globalThis.WeakRef ?? WeakRefMock;
413
415
 
414
- // packages/common/tracing/src/trace-processor.ts
415
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
416
+ // src/trace-processor.ts
417
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
416
418
  var ResourceEntry = class {
419
+ data;
420
+ instance;
421
+ annotation;
422
+ /**
423
+ * Sometimes bundlers mangle class names: WebFile -> WebFile2.
424
+ *
425
+ * We use a heuristic to remove the suffix.
426
+ */
427
+ sanitizedClassName;
417
428
  constructor(data, instance, annotation) {
418
429
  this.data = data;
419
430
  this.instance = instance;
@@ -431,50 +442,19 @@ var REFRESH_INTERVAL = 1e3;
431
442
  var MAX_INFO_OBJECT_DEPTH = 8;
432
443
  var IS_CLOUDFLARE_WORKERS = !!globalThis?.navigator?.userAgent?.includes("Cloudflare-Workers");
433
444
  var TraceProcessor = class {
445
+ diagnostics = new DiagnosticsManager();
446
+ diagnosticsChannel = new DiagnosticsChannel();
447
+ remoteMetrics = new RemoteMetrics();
448
+ remoteTracing = new RemoteTracing();
449
+ subscriptions = /* @__PURE__ */ new Set();
450
+ resources = /* @__PURE__ */ new Map();
451
+ resourceInstanceIndex = /* @__PURE__ */ new WeakMap();
452
+ resourceIdList = [];
453
+ spans = /* @__PURE__ */ new Map();
454
+ spanIdList = [];
455
+ logs = [];
456
+ _instanceTag = null;
434
457
  constructor() {
435
- this.diagnostics = new DiagnosticsManager();
436
- this.diagnosticsChannel = new DiagnosticsChannel();
437
- this.remoteMetrics = new RemoteMetrics();
438
- this.remoteTracing = new RemoteTracing();
439
- this.subscriptions = /* @__PURE__ */ new Set();
440
- this.resources = /* @__PURE__ */ new Map();
441
- this.resourceInstanceIndex = /* @__PURE__ */ new WeakMap();
442
- this.resourceIdList = [];
443
- this.spans = /* @__PURE__ */ new Map();
444
- this.spanIdList = [];
445
- this.logs = [];
446
- this._instanceTag = null;
447
- this._logProcessor = (config, entry) => {
448
- switch (entry.level) {
449
- case LogLevel.ERROR:
450
- case LogLevel.WARN:
451
- case LogLevel.TRACE: {
452
- const scope = entry.meta?.S;
453
- const resource2 = this.resourceInstanceIndex.get(scope);
454
- if (!resource2) {
455
- return;
456
- }
457
- const context = getContextFromEntry(entry) ?? {};
458
- for (const key of Object.keys(context)) {
459
- context[key] = sanitizeValue(context[key], 0, this);
460
- }
461
- const entryToPush = {
462
- level: entry.level,
463
- message: entry.message,
464
- context,
465
- timestamp: /* @__PURE__ */ new Date(),
466
- meta: {
467
- file: entry.meta?.F ?? "",
468
- line: entry.meta?.L ?? 0,
469
- resourceId: resource2.data.id
470
- }
471
- };
472
- this._pushLog(entryToPush);
473
- break;
474
- }
475
- default:
476
- }
477
- };
478
458
  log.addProcessor(this._logProcessor.bind(this), void 0, {
479
459
  F: __dxlog_file3,
480
460
  L: 103,
@@ -658,18 +638,54 @@ var TraceProcessor = class {
658
638
  subscription.newLogs.push(log2);
659
639
  }
660
640
  }
641
+ _logProcessor = (config, entry) => {
642
+ switch (entry.level) {
643
+ case LogLevel.ERROR:
644
+ case LogLevel.WARN:
645
+ case LogLevel.TRACE: {
646
+ const scope = entry.meta?.S;
647
+ const resource2 = this.resourceInstanceIndex.get(scope);
648
+ if (!resource2) {
649
+ return;
650
+ }
651
+ const context = getContextFromEntry(entry) ?? {};
652
+ for (const key of Object.keys(context)) {
653
+ context[key] = sanitizeValue(context[key], 0, this);
654
+ }
655
+ const entryToPush = {
656
+ level: entry.level,
657
+ message: entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : ""),
658
+ context,
659
+ timestamp: /* @__PURE__ */ new Date(),
660
+ meta: {
661
+ file: entry.meta?.F ?? "",
662
+ line: entry.meta?.L ?? 0,
663
+ resourceId: resource2.data.id
664
+ }
665
+ };
666
+ this._pushLog(entryToPush);
667
+ break;
668
+ }
669
+ default:
670
+ }
671
+ };
661
672
  };
662
673
  var TracingSpan = class _TracingSpan {
663
- static {
664
- this.nextId = 0;
665
- }
674
+ _traceProcessor;
675
+ static nextId = 0;
676
+ id;
677
+ parentId = null;
678
+ methodName;
679
+ resourceId = null;
680
+ op;
681
+ attributes;
682
+ startTs;
683
+ endTs = null;
684
+ error = null;
685
+ _showInBrowserTimeline;
686
+ _ctx = null;
666
687
  constructor(_traceProcessor, params) {
667
688
  this._traceProcessor = _traceProcessor;
668
- this.parentId = null;
669
- this.resourceId = null;
670
- this.endTs = null;
671
- this.error = null;
672
- this._ctx = null;
673
689
  this.id = _TracingSpan.nextId++;
674
690
  this.methodName = params.methodName;
675
691
  this.resourceId = _traceProcessor.getResourceId(params.instance);
@@ -813,7 +829,7 @@ var sanitizeClassName = (className) => {
813
829
  var isSetLike = (value) => value instanceof Set || typeof value === "object" && value !== null && Object.getPrototypeOf(value).constructor.name === "ComplexSet";
814
830
  var isMapLike = (value) => value instanceof Map || typeof value === "object" && value !== null && Object.getPrototypeOf(value).constructor.name === "ComplexMap";
815
831
 
816
- // packages/common/tracing/src/api.ts
832
+ // src/api.ts
817
833
  var resource = (options) => (constructor) => {
818
834
  const klass = /* @__PURE__ */ (() => class extends constructor {
819
835
  constructor(...rest) {
@@ -901,8 +917,13 @@ var trace = {
901
917
  metrics: TRACE_PROCESSOR.remoteMetrics
902
918
  };
903
919
 
904
- // packages/common/tracing/src/metrics/base.ts
920
+ // src/metrics/base.ts
905
921
  var BaseCounter = class {
922
+ /**
923
+ * @internal
924
+ */
925
+ _instance;
926
+ name;
906
927
  /**
907
928
  * @internal
908
929
  */
@@ -914,11 +935,12 @@ var BaseCounter = class {
914
935
  }
915
936
  };
916
937
 
917
- // packages/common/tracing/src/metrics/unary-counter.ts
938
+ // src/metrics/unary-counter.ts
918
939
  var UnaryCounter = class extends BaseCounter {
940
+ value = 0;
941
+ units;
919
942
  constructor({ units } = {}) {
920
943
  super();
921
- this.value = 0;
922
944
  this.units = units;
923
945
  }
924
946
  inc(by = 1) {
@@ -935,14 +957,15 @@ var UnaryCounter = class extends BaseCounter {
935
957
  }
936
958
  };
937
959
 
938
- // packages/common/tracing/src/metrics/time-series-counter.ts
960
+ // src/metrics/time-series-counter.ts
939
961
  var MAX_BUCKETS = 60;
940
962
  var TimeSeriesCounter = class extends BaseCounter {
963
+ _currentValue = 0;
964
+ _totalValue = 0;
965
+ _buckets = [];
966
+ units;
941
967
  constructor({ units } = {}) {
942
968
  super();
943
- this._currentValue = 0;
944
- this._totalValue = 0;
945
- this._buckets = [];
946
969
  this.units = units;
947
970
  }
948
971
  inc(by = 1) {
@@ -975,16 +998,13 @@ var TimeSeriesCounter = class extends BaseCounter {
975
998
  }
976
999
  };
977
1000
 
978
- // packages/common/tracing/src/metrics/time-usage-counter.ts
1001
+ // src/metrics/time-usage-counter.ts
979
1002
  var MAX_BUCKETS2 = 60;
980
1003
  var TimeUsageCounter = class extends BaseCounter {
981
- constructor() {
982
- super(...arguments);
983
- this._currentValue = 0;
984
- this._totalValue = 0;
985
- this._buckets = [];
986
- this._lastTickTime = performance.now();
987
- }
1004
+ _currentValue = 0;
1005
+ _totalValue = 0;
1006
+ _buckets = [];
1007
+ _lastTickTime = performance.now();
988
1008
  record(time) {
989
1009
  this._currentValue += time;
990
1010
  this._totalValue += time;
@@ -1027,11 +1047,12 @@ var TimeUsageCounter = class extends BaseCounter {
1027
1047
  }
1028
1048
  };
1029
1049
 
1030
- // packages/common/tracing/src/metrics/map-counter.ts
1050
+ // src/metrics/map-counter.ts
1031
1051
  var MapCounter = class extends BaseCounter {
1052
+ values = /* @__PURE__ */ new Map();
1053
+ units;
1032
1054
  constructor({ units } = {}) {
1033
1055
  super();
1034
- this.values = /* @__PURE__ */ new Map();
1035
1056
  this.units = units;
1036
1057
  }
1037
1058
  inc(key, by = 1) {
@@ -1052,8 +1073,9 @@ var MapCounter = class extends BaseCounter {
1052
1073
  }
1053
1074
  };
1054
1075
 
1055
- // packages/common/tracing/src/metrics/custom-counter.ts
1076
+ // src/metrics/custom-counter.ts
1056
1077
  var CustomCounter = class extends BaseCounter {
1078
+ _getData;
1057
1079
  constructor(_getData) {
1058
1080
  super(), this._getData = _getData;
1059
1081
  }
@@ -1067,7 +1089,7 @@ var CustomCounter = class extends BaseCounter {
1067
1089
  }
1068
1090
  };
1069
1091
 
1070
- // packages/common/tracing/src/index.ts
1092
+ // src/index.ts
1071
1093
  trace.diagnostic({
1072
1094
  id: "process-info",
1073
1095
  name: "Process Info",