@dxos/tracing 0.8.3-staging.0fa589b → 0.8.4-main.28f8d3d

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,17 +109,22 @@ 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;
125
+ // Separate channels becauase the client and server may be in the same process.
126
+ _serveChannel;
127
+ _clientChannel;
121
128
  constructor(_channelName = DEFAULT_CHANNEL_NAME) {
122
129
  this._channelName = _channelName;
123
130
  this._ctx = new Context(void 0, {
@@ -258,11 +265,9 @@ var DiagnosticsChannel = class _DiagnosticsChannel {
258
265
  }
259
266
  };
260
267
 
261
- // packages/common/tracing/src/remote/metrics.ts
268
+ // src/remote/metrics.ts
262
269
  var RemoteMetrics = class {
263
- constructor() {
264
- this._metrics = /* @__PURE__ */ new Set();
265
- }
270
+ _metrics = /* @__PURE__ */ new Set();
266
271
  registerProcessor(processor) {
267
272
  this._metrics.add(processor);
268
273
  }
@@ -280,11 +285,10 @@ var RemoteMetrics = class {
280
285
  }
281
286
  };
282
287
 
283
- // packages/common/tracing/src/remote/tracing.ts
288
+ // src/remote/tracing.ts
284
289
  var RemoteTracing = class {
285
- constructor() {
286
- this._spanMap = /* @__PURE__ */ new Map();
287
- }
290
+ _tracing;
291
+ _spanMap = /* @__PURE__ */ new Map();
288
292
  registerProcessor(processor) {
289
293
  this._tracing = processor;
290
294
  }
@@ -309,9 +313,10 @@ var RemoteTracing = class {
309
313
  }
310
314
  };
311
315
 
312
- // packages/common/tracing/src/trace-sender.ts
316
+ // src/trace-sender.ts
313
317
  import { Stream } from "@dxos/codec-protobuf/stream";
314
318
  var TraceSender = class {
319
+ _traceProcessor;
315
320
  constructor(_traceProcessor) {
316
321
  this._traceProcessor = _traceProcessor;
317
322
  }
@@ -398,7 +403,7 @@ var TraceSender = class {
398
403
  }
399
404
  };
400
405
 
401
- // packages/common/tracing/src/weak-ref.ts
406
+ // src/weak-ref.ts
402
407
  var WeakRefMock = class {
403
408
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
404
409
  constructor(target) {
@@ -409,9 +414,18 @@ var WeakRefMock = class {
409
414
  };
410
415
  var WeakRef = globalThis.WeakRef ?? WeakRefMock;
411
416
 
412
- // packages/common/tracing/src/trace-processor.ts
413
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
417
+ // src/trace-processor.ts
418
+ var __dxlog_file3 = "/__w/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
414
419
  var ResourceEntry = class {
420
+ data;
421
+ instance;
422
+ annotation;
423
+ /**
424
+ * Sometimes bundlers mangle class names: WebFile -> WebFile2.
425
+ *
426
+ * We use a heuristic to remove the suffix.
427
+ */
428
+ sanitizedClassName;
415
429
  constructor(data, instance, annotation) {
416
430
  this.data = data;
417
431
  this.instance = instance;
@@ -429,50 +443,19 @@ var REFRESH_INTERVAL = 1e3;
429
443
  var MAX_INFO_OBJECT_DEPTH = 8;
430
444
  var IS_CLOUDFLARE_WORKERS = !!globalThis?.navigator?.userAgent?.includes("Cloudflare-Workers");
431
445
  var TraceProcessor = class {
446
+ diagnostics = new DiagnosticsManager();
447
+ diagnosticsChannel = new DiagnosticsChannel();
448
+ remoteMetrics = new RemoteMetrics();
449
+ remoteTracing = new RemoteTracing();
450
+ subscriptions = /* @__PURE__ */ new Set();
451
+ resources = /* @__PURE__ */ new Map();
452
+ resourceInstanceIndex = /* @__PURE__ */ new WeakMap();
453
+ resourceIdList = [];
454
+ spans = /* @__PURE__ */ new Map();
455
+ spanIdList = [];
456
+ logs = [];
457
+ _instanceTag = null;
432
458
  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
459
  log.addProcessor(this._logProcessor.bind(this), void 0, {
477
460
  F: __dxlog_file3,
478
461
  L: 103,
@@ -656,11 +639,52 @@ var TraceProcessor = class {
656
639
  subscription.newLogs.push(log2);
657
640
  }
658
641
  }
642
+ _logProcessor = (config, entry) => {
643
+ switch (entry.level) {
644
+ case LogLevel.ERROR:
645
+ case LogLevel.WARN:
646
+ case LogLevel.TRACE: {
647
+ const scope = entry.meta?.S;
648
+ const resource2 = this.resourceInstanceIndex.get(scope);
649
+ if (!resource2) {
650
+ return;
651
+ }
652
+ const context = getContextFromEntry(entry) ?? {};
653
+ for (const key of Object.keys(context)) {
654
+ context[key] = sanitizeValue(context[key], 0, this);
655
+ }
656
+ const entryToPush = {
657
+ level: entry.level,
658
+ message: entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : ""),
659
+ context,
660
+ timestamp: /* @__PURE__ */ new Date(),
661
+ meta: {
662
+ file: entry.meta?.F ?? "",
663
+ line: entry.meta?.L ?? 0,
664
+ resourceId: resource2.data.id
665
+ }
666
+ };
667
+ this._pushLog(entryToPush);
668
+ break;
669
+ }
670
+ default:
671
+ }
672
+ };
659
673
  };
660
674
  var TracingSpan = class _TracingSpan {
661
- static {
662
- this.nextId = 0;
663
- }
675
+ _traceProcessor;
676
+ static nextId = 0;
677
+ id;
678
+ parentId;
679
+ methodName;
680
+ resourceId;
681
+ op;
682
+ attributes;
683
+ startTs;
684
+ endTs;
685
+ error;
686
+ _showInBrowserTimeline;
687
+ _ctx;
664
688
  constructor(_traceProcessor, params) {
665
689
  this._traceProcessor = _traceProcessor;
666
690
  this.parentId = null;
@@ -811,7 +835,7 @@ var sanitizeClassName = (className) => {
811
835
  var isSetLike = (value) => value instanceof Set || typeof value === "object" && value !== null && Object.getPrototypeOf(value).constructor.name === "ComplexSet";
812
836
  var isMapLike = (value) => value instanceof Map || typeof value === "object" && value !== null && Object.getPrototypeOf(value).constructor.name === "ComplexMap";
813
837
 
814
- // packages/common/tracing/src/api.ts
838
+ // src/api.ts
815
839
  var resource = (options) => (constructor) => {
816
840
  const klass = /* @__PURE__ */ (() => class extends constructor {
817
841
  constructor(...rest) {
@@ -899,8 +923,13 @@ var trace = {
899
923
  metrics: TRACE_PROCESSOR.remoteMetrics
900
924
  };
901
925
 
902
- // packages/common/tracing/src/metrics/base.ts
926
+ // src/metrics/base.ts
903
927
  var BaseCounter = class {
928
+ /**
929
+ * @internal
930
+ */
931
+ _instance;
932
+ name;
904
933
  /**
905
934
  * @internal
906
935
  */
@@ -912,11 +941,12 @@ var BaseCounter = class {
912
941
  }
913
942
  };
914
943
 
915
- // packages/common/tracing/src/metrics/unary-counter.ts
944
+ // src/metrics/unary-counter.ts
916
945
  var UnaryCounter = class extends BaseCounter {
946
+ value = 0;
947
+ units;
917
948
  constructor({ units } = {}) {
918
949
  super();
919
- this.value = 0;
920
950
  this.units = units;
921
951
  }
922
952
  inc(by = 1) {
@@ -933,14 +963,15 @@ var UnaryCounter = class extends BaseCounter {
933
963
  }
934
964
  };
935
965
 
936
- // packages/common/tracing/src/metrics/time-series-counter.ts
966
+ // src/metrics/time-series-counter.ts
937
967
  var MAX_BUCKETS = 60;
938
968
  var TimeSeriesCounter = class extends BaseCounter {
969
+ _currentValue = 0;
970
+ _totalValue = 0;
971
+ _buckets = [];
972
+ units;
939
973
  constructor({ units } = {}) {
940
974
  super();
941
- this._currentValue = 0;
942
- this._totalValue = 0;
943
- this._buckets = [];
944
975
  this.units = units;
945
976
  }
946
977
  inc(by = 1) {
@@ -973,16 +1004,13 @@ var TimeSeriesCounter = class extends BaseCounter {
973
1004
  }
974
1005
  };
975
1006
 
976
- // packages/common/tracing/src/metrics/time-usage-counter.ts
1007
+ // src/metrics/time-usage-counter.ts
977
1008
  var MAX_BUCKETS2 = 60;
978
1009
  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
- }
1010
+ _currentValue = 0;
1011
+ _totalValue = 0;
1012
+ _buckets = [];
1013
+ _lastTickTime = performance.now();
986
1014
  record(time) {
987
1015
  this._currentValue += time;
988
1016
  this._totalValue += time;
@@ -1025,11 +1053,12 @@ var TimeUsageCounter = class extends BaseCounter {
1025
1053
  }
1026
1054
  };
1027
1055
 
1028
- // packages/common/tracing/src/metrics/map-counter.ts
1056
+ // src/metrics/map-counter.ts
1029
1057
  var MapCounter = class extends BaseCounter {
1058
+ values = /* @__PURE__ */ new Map();
1059
+ units;
1030
1060
  constructor({ units } = {}) {
1031
1061
  super();
1032
- this.values = /* @__PURE__ */ new Map();
1033
1062
  this.units = units;
1034
1063
  }
1035
1064
  inc(key, by = 1) {
@@ -1050,8 +1079,9 @@ var MapCounter = class extends BaseCounter {
1050
1079
  }
1051
1080
  };
1052
1081
 
1053
- // packages/common/tracing/src/metrics/custom-counter.ts
1082
+ // src/metrics/custom-counter.ts
1054
1083
  var CustomCounter = class extends BaseCounter {
1084
+ _getData;
1055
1085
  constructor(_getData) {
1056
1086
  super(), this._getData = _getData;
1057
1087
  }
@@ -1065,7 +1095,7 @@ var CustomCounter = class extends BaseCounter {
1065
1095
  }
1066
1096
  };
1067
1097
 
1068
- // packages/common/tracing/src/index.ts
1098
+ // src/index.ts
1069
1099
  trace.diagnostic({
1070
1100
  id: "process-info",
1071
1101
  name: "Process Info",