@dxos/tracing 0.8.4-main.dedc0f3 → 0.8.4-main.dfabb4ec29

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.
Files changed (47) hide show
  1. package/dist/lib/browser/index.mjs +445 -665
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +445 -665
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/api.d.ts +36 -17
  8. package/dist/types/src/api.d.ts.map +1 -1
  9. package/dist/types/src/buffering-backend.d.ts +24 -0
  10. package/dist/types/src/buffering-backend.d.ts.map +1 -0
  11. package/dist/types/src/diagnostic.d.ts +2 -2
  12. package/dist/types/src/diagnostic.d.ts.map +1 -1
  13. package/dist/types/src/diagnostics-channel.d.ts.map +1 -1
  14. package/dist/types/src/index.d.ts +1 -2
  15. package/dist/types/src/index.d.ts.map +1 -1
  16. package/dist/types/src/metrics/base.d.ts.map +1 -1
  17. package/dist/types/src/metrics/custom-counter.d.ts.map +1 -1
  18. package/dist/types/src/metrics/map-counter.d.ts.map +1 -1
  19. package/dist/types/src/metrics/time-series-counter.d.ts.map +1 -1
  20. package/dist/types/src/metrics/time-usage-counter.d.ts.map +1 -1
  21. package/dist/types/src/metrics/unary-counter.d.ts.map +1 -1
  22. package/dist/types/src/remote/index.d.ts +0 -1
  23. package/dist/types/src/remote/index.d.ts.map +1 -1
  24. package/dist/types/src/remote/metrics.d.ts.map +1 -1
  25. package/dist/types/src/symbols.d.ts +0 -1
  26. package/dist/types/src/symbols.d.ts.map +1 -1
  27. package/dist/types/src/trace-processor.d.ts +16 -52
  28. package/dist/types/src/trace-processor.d.ts.map +1 -1
  29. package/dist/types/src/tracing-types.d.ts +67 -0
  30. package/dist/types/src/tracing-types.d.ts.map +1 -0
  31. package/dist/types/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +13 -12
  33. package/src/api.ts +237 -35
  34. package/src/buffering-backend.ts +112 -0
  35. package/src/diagnostic.ts +2 -2
  36. package/src/index.ts +1 -2
  37. package/src/remote/index.ts +0 -1
  38. package/src/symbols.ts +0 -2
  39. package/src/trace-processor.ts +58 -258
  40. package/src/tracing-types.ts +77 -0
  41. package/src/tracing.test.ts +513 -4
  42. package/dist/types/src/remote/tracing.d.ts +0 -23
  43. package/dist/types/src/remote/tracing.d.ts.map +0 -1
  44. package/dist/types/src/trace-sender.d.ts +0 -9
  45. package/dist/types/src/trace-sender.d.ts.map +0 -1
  46. package/src/remote/tracing.ts +0 -53
  47. package/src/trace-sender.ts +0 -88
@@ -1,88 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { Stream } from '@dxos/codec-protobuf/stream';
6
- import { type LogEntry } from '@dxos/protocols/proto/dxos/client/services';
7
- import { type StreamTraceEvent, type TracingService } from '@dxos/protocols/proto/dxos/tracing';
8
-
9
- import { type TraceProcessor, type TraceSubscription } from './trace-processor';
10
-
11
- export class TraceSender implements TracingService {
12
- constructor(private _traceProcessor: TraceProcessor) {}
13
-
14
- streamTrace(request: void): Stream<StreamTraceEvent> {
15
- return new Stream(({ ctx, next }) => {
16
- const flushEvents = (resources: Set<number> | null, spans: Set<number> | null, logs: LogEntry[] | null) => {
17
- const event: StreamTraceEvent = {
18
- resourceAdded: [],
19
- resourceRemoved: [],
20
- spanAdded: [],
21
- logAdded: [],
22
- };
23
-
24
- if (resources) {
25
- for (const id of resources) {
26
- const entry = this._traceProcessor.resources.get(id);
27
- if (entry) {
28
- event.resourceAdded!.push({ resource: entry.data });
29
- } else {
30
- event.resourceRemoved!.push({ id });
31
- }
32
- }
33
- } else {
34
- for (const entry of this._traceProcessor.resources.values()) {
35
- event.resourceAdded!.push({ resource: entry.data });
36
- }
37
- }
38
-
39
- if (spans) {
40
- for (const id of spans) {
41
- const span = this._traceProcessor.spans.get(id);
42
- if (span) {
43
- event.spanAdded!.push({ span });
44
- }
45
- }
46
- } else {
47
- for (const span of this._traceProcessor.spans.values()) {
48
- event.spanAdded!.push({ span });
49
- }
50
- }
51
-
52
- if (logs) {
53
- for (const log of logs) {
54
- event.logAdded!.push({ log });
55
- }
56
- } else {
57
- for (const log of this._traceProcessor.logs) {
58
- event.logAdded!.push({ log });
59
- }
60
- }
61
-
62
- if (event.resourceAdded!.length > 0 || event.resourceRemoved!.length > 0 || event.spanAdded!.length > 0) {
63
- next(event);
64
- }
65
- };
66
-
67
- const flush = () => {
68
- flushEvents(subscription.dirtyResources, subscription.dirtySpans, subscription.newLogs);
69
- subscription.dirtyResources.clear();
70
- subscription.dirtySpans.clear();
71
- subscription.newLogs.length = 0;
72
- };
73
-
74
- const subscription: TraceSubscription = {
75
- flush,
76
- dirtyResources: new Set(),
77
- dirtySpans: new Set(),
78
- newLogs: [],
79
- };
80
- this._traceProcessor.subscriptions.add(subscription);
81
- ctx.onDispose(() => {
82
- this._traceProcessor.subscriptions.delete(subscription);
83
- });
84
-
85
- flushEvents(null, null, null);
86
- });
87
- }
88
- }