@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.
- package/dist/lib/browser/index.mjs +122 -92
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +122 -92
- 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
- package/src/trace-processor.ts +2 -2
- package/dist/lib/node/index.cjs +0 -1111
- package/dist/lib/node/index.cjs.map +0 -7
- package/dist/lib/node/meta.json +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// src/api.ts
|
|
4
4
|
import { Context as Context2 } from "@dxos/context";
|
|
5
5
|
|
|
6
|
-
//
|
|
6
|
+
// src/symbols.ts
|
|
7
7
|
var symbolTracingContext = Symbol("dxos.tracing.context");
|
|
8
8
|
var getTracingContext = (target) => {
|
|
9
9
|
return target[symbolTracingContext] ??= {
|
|
@@ -13,22 +13,26 @@ var getTracingContext = (target) => {
|
|
|
13
13
|
};
|
|
14
14
|
var TRACE_SPAN_ATTRIBUTE = "dxos.trace-span";
|
|
15
15
|
|
|
16
|
-
//
|
|
16
|
+
// src/trace-processor.ts
|
|
17
17
|
import { unrefTimeout } from "@dxos/async";
|
|
18
18
|
import { LogLevel, getContextFromEntry, log } from "@dxos/log";
|
|
19
19
|
import { getPrototypeSpecificInstanceId } from "@dxos/util";
|
|
20
20
|
|
|
21
|
-
//
|
|
21
|
+
// src/diagnostic.ts
|
|
22
22
|
import { asyncTimeout } from "@dxos/async";
|
|
23
23
|
import { invariant } from "@dxos/invariant";
|
|
24
24
|
|
|
25
|
-
//
|
|
25
|
+
// src/util.ts
|
|
26
26
|
var createId = () => Math.random().toString(36).slice(2);
|
|
27
27
|
|
|
28
|
-
//
|
|
29
|
-
var __dxlog_file = "/
|
|
28
|
+
// src/diagnostic.ts
|
|
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
|
}
|
|
@@ -109,17 +111,22 @@ var DiagnosticsManager = class {
|
|
|
109
111
|
}
|
|
110
112
|
};
|
|
111
113
|
|
|
112
|
-
//
|
|
114
|
+
// src/diagnostics-channel.ts
|
|
113
115
|
import { Trigger, sleep } from "@dxos/async";
|
|
114
116
|
import { Context } from "@dxos/context";
|
|
115
117
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
116
|
-
var __dxlog_file2 = "/
|
|
118
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/common/tracing/src/diagnostics-channel.ts";
|
|
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, {
|
|
@@ -260,11 +267,9 @@ var DiagnosticsChannel = class _DiagnosticsChannel {
|
|
|
260
267
|
}
|
|
261
268
|
};
|
|
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
|
}
|
|
@@ -282,11 +287,10 @@ var RemoteMetrics = class {
|
|
|
282
287
|
}
|
|
283
288
|
};
|
|
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
|
}
|
|
@@ -311,9 +315,10 @@ var RemoteTracing = class {
|
|
|
311
315
|
}
|
|
312
316
|
};
|
|
313
317
|
|
|
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
|
}
|
|
@@ -400,7 +405,7 @@ var TraceSender = class {
|
|
|
400
405
|
}
|
|
401
406
|
};
|
|
402
407
|
|
|
403
|
-
//
|
|
408
|
+
// src/weak-ref.ts
|
|
404
409
|
var WeakRefMock = class {
|
|
405
410
|
// eslint-disable-next-line @typescript-eslint/no-useless-constructor
|
|
406
411
|
constructor(target) {
|
|
@@ -411,9 +416,18 @@ var WeakRefMock = class {
|
|
|
411
416
|
};
|
|
412
417
|
var WeakRef = globalThis.WeakRef ?? WeakRefMock;
|
|
413
418
|
|
|
414
|
-
//
|
|
415
|
-
var __dxlog_file3 = "/
|
|
419
|
+
// src/trace-processor.ts
|
|
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,
|
|
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;
|
|
@@ -813,7 +837,7 @@ var sanitizeClassName = (className) => {
|
|
|
813
837
|
var isSetLike = (value) => value instanceof Set || typeof value === "object" && value !== null && Object.getPrototypeOf(value).constructor.name === "ComplexSet";
|
|
814
838
|
var isMapLike = (value) => value instanceof Map || typeof value === "object" && value !== null && Object.getPrototypeOf(value).constructor.name === "ComplexMap";
|
|
815
839
|
|
|
816
|
-
//
|
|
840
|
+
// src/api.ts
|
|
817
841
|
var resource = (options) => (constructor) => {
|
|
818
842
|
const klass = /* @__PURE__ */ (() => class extends constructor {
|
|
819
843
|
constructor(...rest) {
|
|
@@ -901,8 +925,13 @@ var trace = {
|
|
|
901
925
|
metrics: TRACE_PROCESSOR.remoteMetrics
|
|
902
926
|
};
|
|
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
|
*/
|
|
@@ -914,11 +943,12 @@ var BaseCounter = class {
|
|
|
914
943
|
}
|
|
915
944
|
};
|
|
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) {
|
|
@@ -935,14 +965,15 @@ var UnaryCounter = class extends BaseCounter {
|
|
|
935
965
|
}
|
|
936
966
|
};
|
|
937
967
|
|
|
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) {
|
|
@@ -975,16 +1006,13 @@ var TimeSeriesCounter = class extends BaseCounter {
|
|
|
975
1006
|
}
|
|
976
1007
|
};
|
|
977
1008
|
|
|
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;
|
|
@@ -1027,11 +1055,12 @@ var TimeUsageCounter = class extends BaseCounter {
|
|
|
1027
1055
|
}
|
|
1028
1056
|
};
|
|
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) {
|
|
@@ -1052,8 +1081,9 @@ var MapCounter = class extends BaseCounter {
|
|
|
1052
1081
|
}
|
|
1053
1082
|
};
|
|
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
|
}
|
|
@@ -1067,7 +1097,7 @@ var CustomCounter = class extends BaseCounter {
|
|
|
1067
1097
|
}
|
|
1068
1098
|
};
|
|
1069
1099
|
|
|
1070
|
-
//
|
|
1100
|
+
// src/index.ts
|
|
1071
1101
|
trace.diagnostic({
|
|
1072
1102
|
id: "process-info",
|
|
1073
1103
|
name: "Process Info",
|