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