@dxos/tracing 0.8.4-main.c1de068 → 0.8.4-main.f5c0578
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 +99 -69
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +99 -69
- 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
|
@@ -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,9 +119,14 @@ 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;
|
|
127
|
+
// Separate channels becauase the client and server may be in the same process.
|
|
128
|
+
_serveChannel;
|
|
129
|
+
_clientChannel;
|
|
123
130
|
constructor(_channelName = DEFAULT_CHANNEL_NAME) {
|
|
124
131
|
this._channelName = _channelName;
|
|
125
132
|
this._ctx = new Context(void 0, {
|
|
@@ -262,9 +269,7 @@ var DiagnosticsChannel = class _DiagnosticsChannel {
|
|
|
262
269
|
|
|
263
270
|
// src/remote/metrics.ts
|
|
264
271
|
var RemoteMetrics = class {
|
|
265
|
-
|
|
266
|
-
this._metrics = /* @__PURE__ */ new Set();
|
|
267
|
-
}
|
|
272
|
+
_metrics = /* @__PURE__ */ new Set();
|
|
268
273
|
registerProcessor(processor) {
|
|
269
274
|
this._metrics.add(processor);
|
|
270
275
|
}
|
|
@@ -284,9 +289,8 @@ var RemoteMetrics = class {
|
|
|
284
289
|
|
|
285
290
|
// src/remote/tracing.ts
|
|
286
291
|
var RemoteTracing = class {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
292
|
+
_tracing;
|
|
293
|
+
_spanMap = /* @__PURE__ */ new Map();
|
|
290
294
|
registerProcessor(processor) {
|
|
291
295
|
this._tracing = processor;
|
|
292
296
|
}
|
|
@@ -314,6 +318,7 @@ var RemoteTracing = class {
|
|
|
314
318
|
// src/trace-sender.ts
|
|
315
319
|
import { Stream } from "@dxos/codec-protobuf/stream";
|
|
316
320
|
var TraceSender = class {
|
|
321
|
+
_traceProcessor;
|
|
317
322
|
constructor(_traceProcessor) {
|
|
318
323
|
this._traceProcessor = _traceProcessor;
|
|
319
324
|
}
|
|
@@ -414,6 +419,15 @@ var WeakRef = globalThis.WeakRef ?? WeakRefMock;
|
|
|
414
419
|
// src/trace-processor.ts
|
|
415
420
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/common/tracing/src/trace-processor.ts";
|
|
416
421
|
var ResourceEntry = class {
|
|
422
|
+
data;
|
|
423
|
+
instance;
|
|
424
|
+
annotation;
|
|
425
|
+
/**
|
|
426
|
+
* Sometimes bundlers mangle class names: WebFile -> WebFile2.
|
|
427
|
+
*
|
|
428
|
+
* We use a heuristic to remove the suffix.
|
|
429
|
+
*/
|
|
430
|
+
sanitizedClassName;
|
|
417
431
|
constructor(data, instance, annotation) {
|
|
418
432
|
this.data = data;
|
|
419
433
|
this.instance = instance;
|
|
@@ -431,50 +445,19 @@ var REFRESH_INTERVAL = 1e3;
|
|
|
431
445
|
var MAX_INFO_OBJECT_DEPTH = 8;
|
|
432
446
|
var IS_CLOUDFLARE_WORKERS = !!globalThis?.navigator?.userAgent?.includes("Cloudflare-Workers");
|
|
433
447
|
var TraceProcessor = class {
|
|
448
|
+
diagnostics = new DiagnosticsManager();
|
|
449
|
+
diagnosticsChannel = new DiagnosticsChannel();
|
|
450
|
+
remoteMetrics = new RemoteMetrics();
|
|
451
|
+
remoteTracing = new RemoteTracing();
|
|
452
|
+
subscriptions = /* @__PURE__ */ new Set();
|
|
453
|
+
resources = /* @__PURE__ */ new Map();
|
|
454
|
+
resourceInstanceIndex = /* @__PURE__ */ new WeakMap();
|
|
455
|
+
resourceIdList = [];
|
|
456
|
+
spans = /* @__PURE__ */ new Map();
|
|
457
|
+
spanIdList = [];
|
|
458
|
+
logs = [];
|
|
459
|
+
_instanceTag = null;
|
|
434
460
|
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
461
|
log.addProcessor(this._logProcessor.bind(this), void 0, {
|
|
479
462
|
F: __dxlog_file3,
|
|
480
463
|
L: 103,
|
|
@@ -658,11 +641,52 @@ var TraceProcessor = class {
|
|
|
658
641
|
subscription.newLogs.push(log2);
|
|
659
642
|
}
|
|
660
643
|
}
|
|
644
|
+
_logProcessor = (config, entry) => {
|
|
645
|
+
switch (entry.level) {
|
|
646
|
+
case LogLevel.ERROR:
|
|
647
|
+
case LogLevel.WARN:
|
|
648
|
+
case LogLevel.TRACE: {
|
|
649
|
+
const scope = entry.meta?.S;
|
|
650
|
+
const resource2 = this.resourceInstanceIndex.get(scope);
|
|
651
|
+
if (!resource2) {
|
|
652
|
+
return;
|
|
653
|
+
}
|
|
654
|
+
const context = getContextFromEntry(entry) ?? {};
|
|
655
|
+
for (const key of Object.keys(context)) {
|
|
656
|
+
context[key] = sanitizeValue(context[key], 0, this);
|
|
657
|
+
}
|
|
658
|
+
const entryToPush = {
|
|
659
|
+
level: entry.level,
|
|
660
|
+
message: entry.message ?? (entry.error ? entry.error.message ?? String(entry.error) : ""),
|
|
661
|
+
context,
|
|
662
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
663
|
+
meta: {
|
|
664
|
+
file: entry.meta?.F ?? "",
|
|
665
|
+
line: entry.meta?.L ?? 0,
|
|
666
|
+
resourceId: resource2.data.id
|
|
667
|
+
}
|
|
668
|
+
};
|
|
669
|
+
this._pushLog(entryToPush);
|
|
670
|
+
break;
|
|
671
|
+
}
|
|
672
|
+
default:
|
|
673
|
+
}
|
|
674
|
+
};
|
|
661
675
|
};
|
|
662
676
|
var TracingSpan = class _TracingSpan {
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
677
|
+
_traceProcessor;
|
|
678
|
+
static nextId = 0;
|
|
679
|
+
id;
|
|
680
|
+
parentId;
|
|
681
|
+
methodName;
|
|
682
|
+
resourceId;
|
|
683
|
+
op;
|
|
684
|
+
attributes;
|
|
685
|
+
startTs;
|
|
686
|
+
endTs;
|
|
687
|
+
error;
|
|
688
|
+
_showInBrowserTimeline;
|
|
689
|
+
_ctx;
|
|
666
690
|
constructor(_traceProcessor, params) {
|
|
667
691
|
this._traceProcessor = _traceProcessor;
|
|
668
692
|
this.parentId = null;
|
|
@@ -903,6 +927,11 @@ var trace = {
|
|
|
903
927
|
|
|
904
928
|
// src/metrics/base.ts
|
|
905
929
|
var BaseCounter = class {
|
|
930
|
+
/**
|
|
931
|
+
* @internal
|
|
932
|
+
*/
|
|
933
|
+
_instance;
|
|
934
|
+
name;
|
|
906
935
|
/**
|
|
907
936
|
* @internal
|
|
908
937
|
*/
|
|
@@ -916,9 +945,10 @@ var BaseCounter = class {
|
|
|
916
945
|
|
|
917
946
|
// src/metrics/unary-counter.ts
|
|
918
947
|
var UnaryCounter = class extends BaseCounter {
|
|
948
|
+
value = 0;
|
|
949
|
+
units;
|
|
919
950
|
constructor({ units } = {}) {
|
|
920
951
|
super();
|
|
921
|
-
this.value = 0;
|
|
922
952
|
this.units = units;
|
|
923
953
|
}
|
|
924
954
|
inc(by = 1) {
|
|
@@ -938,11 +968,12 @@ var UnaryCounter = class extends BaseCounter {
|
|
|
938
968
|
// src/metrics/time-series-counter.ts
|
|
939
969
|
var MAX_BUCKETS = 60;
|
|
940
970
|
var TimeSeriesCounter = class extends BaseCounter {
|
|
971
|
+
_currentValue = 0;
|
|
972
|
+
_totalValue = 0;
|
|
973
|
+
_buckets = [];
|
|
974
|
+
units;
|
|
941
975
|
constructor({ units } = {}) {
|
|
942
976
|
super();
|
|
943
|
-
this._currentValue = 0;
|
|
944
|
-
this._totalValue = 0;
|
|
945
|
-
this._buckets = [];
|
|
946
977
|
this.units = units;
|
|
947
978
|
}
|
|
948
979
|
inc(by = 1) {
|
|
@@ -978,13 +1009,10 @@ var TimeSeriesCounter = class extends BaseCounter {
|
|
|
978
1009
|
// src/metrics/time-usage-counter.ts
|
|
979
1010
|
var MAX_BUCKETS2 = 60;
|
|
980
1011
|
var TimeUsageCounter = class extends BaseCounter {
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
this._buckets = [];
|
|
986
|
-
this._lastTickTime = performance.now();
|
|
987
|
-
}
|
|
1012
|
+
_currentValue = 0;
|
|
1013
|
+
_totalValue = 0;
|
|
1014
|
+
_buckets = [];
|
|
1015
|
+
_lastTickTime = performance.now();
|
|
988
1016
|
record(time) {
|
|
989
1017
|
this._currentValue += time;
|
|
990
1018
|
this._totalValue += time;
|
|
@@ -1029,9 +1057,10 @@ var TimeUsageCounter = class extends BaseCounter {
|
|
|
1029
1057
|
|
|
1030
1058
|
// src/metrics/map-counter.ts
|
|
1031
1059
|
var MapCounter = class extends BaseCounter {
|
|
1060
|
+
values = /* @__PURE__ */ new Map();
|
|
1061
|
+
units;
|
|
1032
1062
|
constructor({ units } = {}) {
|
|
1033
1063
|
super();
|
|
1034
|
-
this.values = /* @__PURE__ */ new Map();
|
|
1035
1064
|
this.units = units;
|
|
1036
1065
|
}
|
|
1037
1066
|
inc(key, by = 1) {
|
|
@@ -1054,6 +1083,7 @@ var MapCounter = class extends BaseCounter {
|
|
|
1054
1083
|
|
|
1055
1084
|
// src/metrics/custom-counter.ts
|
|
1056
1085
|
var CustomCounter = class extends BaseCounter {
|
|
1086
|
+
_getData;
|
|
1057
1087
|
constructor(_getData) {
|
|
1058
1088
|
super(), this._getData = _getData;
|
|
1059
1089
|
}
|