@dxos/tracing 0.8.4-main.67995b8 → 0.8.4-main.69d29f4
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/api.d.ts +4 -4
- package/dist/types/src/api.d.ts.map +1 -1
- package/dist/types/src/diagnostic.d.ts +2 -2
- package/dist/types/src/diagnostic.d.ts.map +1 -1
- package/dist/types/src/trace-processor.d.ts +4 -4
- package/dist/types/src/trace-processor.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -11
- package/src/api.ts +4 -4
- package/src/diagnostic.ts +2 -2
- package/src/trace-processor.ts +5 -5
|
@@ -29,6 +29,10 @@ var createId = () => Math.random().toString(36).slice(2);
|
|
|
29
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
}
|
|
@@ -117,17 +119,19 @@ var __dxlog_file2 = "/__w/dxos/dxos/packages/common/tracing/src/diagnostics-chan
|
|
|
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);
|
|
@@ -262,9 +266,7 @@ var DiagnosticsChannel = class _DiagnosticsChannel {
|
|
|
262
266
|
|
|
263
267
|
// src/remote/metrics.ts
|
|
264
268
|
var RemoteMetrics = class {
|
|
265
|
-
|
|
266
|
-
this._metrics = /* @__PURE__ */ new Set();
|
|
267
|
-
}
|
|
269
|
+
_metrics = /* @__PURE__ */ new Set();
|
|
268
270
|
registerProcessor(processor) {
|
|
269
271
|
this._metrics.add(processor);
|
|
270
272
|
}
|
|
@@ -284,9 +286,8 @@ var RemoteMetrics = class {
|
|
|
284
286
|
|
|
285
287
|
// src/remote/tracing.ts
|
|
286
288
|
var RemoteTracing = class {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
289
|
+
_tracing;
|
|
290
|
+
_spanMap = /* @__PURE__ */ new Map();
|
|
290
291
|
registerProcessor(processor) {
|
|
291
292
|
this._tracing = processor;
|
|
292
293
|
}
|
|
@@ -314,6 +315,7 @@ var RemoteTracing = class {
|
|
|
314
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
|
}
|
|
@@ -414,6 +416,15 @@ var WeakRef = globalThis.WeakRef ?? WeakRefMock;
|
|
|
414
416
|
// src/trace-processor.ts
|
|
415
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 ?? (entry.error ? entry.error.message ?? String(entry.error) : ""),
|
|
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
|
-
|
|
664
|
-
|
|
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);
|
|
@@ -903,6 +919,11 @@ var trace = {
|
|
|
903
919
|
|
|
904
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
|
*/
|
|
@@ -916,9 +937,10 @@ var BaseCounter = class {
|
|
|
916
937
|
|
|
917
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) {
|
|
@@ -938,11 +960,12 @@ var UnaryCounter = class extends BaseCounter {
|
|
|
938
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) {
|
|
@@ -978,13 +1001,10 @@ var TimeSeriesCounter = class extends BaseCounter {
|
|
|
978
1001
|
// src/metrics/time-usage-counter.ts
|
|
979
1002
|
var MAX_BUCKETS2 = 60;
|
|
980
1003
|
var TimeUsageCounter = class extends BaseCounter {
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
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;
|
|
@@ -1029,9 +1049,10 @@ var TimeUsageCounter = class extends BaseCounter {
|
|
|
1029
1049
|
|
|
1030
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) {
|
|
@@ -1054,6 +1075,7 @@ var MapCounter = class extends BaseCounter {
|
|
|
1054
1075
|
|
|
1055
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
|
}
|