@dxos/tracing 0.8.4-main.67995b8 → 0.8.4-main.70d3990
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.
- package/dist/lib/browser/index.mjs +102 -80
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +102 -80
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/diagnostic.d.ts +1 -1
- package/dist/types/src/diagnostic.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/src/diagnostic.ts +1 -1
|
@@ -27,6 +27,10 @@ var createId = () => Math.random().toString(36).slice(2);
|
|
|
27
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
}
|
|
@@ -115,17 +117,19 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/common/tracing/src/diagnostics-chan
|
|
|
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);
|
|
@@ -260,9 +264,7 @@ var DiagnosticsChannel = class _DiagnosticsChannel {
|
|
|
260
264
|
|
|
261
265
|
// src/remote/metrics.ts
|
|
262
266
|
var RemoteMetrics = class {
|
|
263
|
-
|
|
264
|
-
this._metrics = /* @__PURE__ */ new Set();
|
|
265
|
-
}
|
|
267
|
+
_metrics = /* @__PURE__ */ new Set();
|
|
266
268
|
registerProcessor(processor) {
|
|
267
269
|
this._metrics.add(processor);
|
|
268
270
|
}
|
|
@@ -282,9 +284,8 @@ var RemoteMetrics = class {
|
|
|
282
284
|
|
|
283
285
|
// src/remote/tracing.ts
|
|
284
286
|
var RemoteTracing = class {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
}
|
|
287
|
+
_tracing;
|
|
288
|
+
_spanMap = /* @__PURE__ */ new Map();
|
|
288
289
|
registerProcessor(processor) {
|
|
289
290
|
this._tracing = processor;
|
|
290
291
|
}
|
|
@@ -312,6 +313,7 @@ var RemoteTracing = class {
|
|
|
312
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
|
}
|
|
@@ -412,6 +414,15 @@ var WeakRef = globalThis.WeakRef ?? WeakRefMock;
|
|
|
412
414
|
// src/trace-processor.ts
|
|
413
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 ?? (entry.error ? entry.error.message ?? String(entry.error) : ""),
|
|
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
|
-
|
|
662
|
-
|
|
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);
|
|
@@ -901,6 +917,11 @@ var trace = {
|
|
|
901
917
|
|
|
902
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
|
*/
|
|
@@ -914,9 +935,10 @@ var BaseCounter = class {
|
|
|
914
935
|
|
|
915
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) {
|
|
@@ -936,11 +958,12 @@ var UnaryCounter = class extends BaseCounter {
|
|
|
936
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) {
|
|
@@ -976,13 +999,10 @@ var TimeSeriesCounter = class extends BaseCounter {
|
|
|
976
999
|
// src/metrics/time-usage-counter.ts
|
|
977
1000
|
var MAX_BUCKETS2 = 60;
|
|
978
1001
|
var TimeUsageCounter = class extends BaseCounter {
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
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;
|
|
@@ -1027,9 +1047,10 @@ var TimeUsageCounter = class extends BaseCounter {
|
|
|
1027
1047
|
|
|
1028
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) {
|
|
@@ -1052,6 +1073,7 @@ var MapCounter = class extends BaseCounter {
|
|
|
1052
1073
|
|
|
1053
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
|
}
|