autotel-devtools 8.1.0 → 9.0.0

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 (64) hide show
  1. package/dist/cli.cjs +108 -1409
  2. package/dist/cli.cjs.map +1 -1
  3. package/dist/cli.d.cts +1 -1
  4. package/dist/cli.d.ts +1 -1
  5. package/dist/cli.js +109 -1402
  6. package/dist/cli.js.map +1 -1
  7. package/dist/error-aggregator-BvNmgn7E.d.ts +120 -0
  8. package/dist/error-aggregator-nnfbpSR7.d.cts +120 -0
  9. package/dist/exporter-1Y3GmLVS.d.cts +182 -0
  10. package/dist/exporter-CZ5HdD3o.d.ts +182 -0
  11. package/dist/genai/index.cjs +650 -537
  12. package/dist/genai/index.cjs.map +1 -1
  13. package/dist/genai/index.d.cts +164 -157
  14. package/dist/genai/index.d.ts +164 -157
  15. package/dist/genai/index.js +649 -536
  16. package/dist/genai/index.js.map +1 -1
  17. package/dist/http-BkkKa9C_.js +1128 -0
  18. package/dist/http-BkkKa9C_.js.map +1 -0
  19. package/dist/http-Yj6iSrMX.cjs +1275 -0
  20. package/dist/http-Yj6iSrMX.cjs.map +1 -0
  21. package/dist/index.cjs +50 -1708
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.cts +21 -23
  24. package/dist/index.d.ts +21 -23
  25. package/dist/index.js +44 -1696
  26. package/dist/index.js.map +1 -1
  27. package/dist/listen-BBsxO0wm.cjs +125 -0
  28. package/dist/listen-BBsxO0wm.cjs.map +1 -0
  29. package/dist/listen-DfOCquUq.js +120 -0
  30. package/dist/listen-DfOCquUq.js.map +1 -0
  31. package/dist/resource-utils-B4UVvfnH.js +18 -0
  32. package/dist/resource-utils-B4UVvfnH.js.map +1 -0
  33. package/dist/resource-utils-DjHJB6uc.cjs +24 -0
  34. package/dist/resource-utils-DjHJB6uc.cjs.map +1 -0
  35. package/dist/server/exporter.cjs +135 -159
  36. package/dist/server/exporter.cjs.map +1 -1
  37. package/dist/server/exporter.d.cts +2 -4
  38. package/dist/server/exporter.d.ts +2 -4
  39. package/dist/server/exporter.js +134 -158
  40. package/dist/server/exporter.js.map +1 -1
  41. package/dist/server/index.cjs +29 -1640
  42. package/dist/server/index.d.cts +34 -31
  43. package/dist/server/index.d.ts +34 -31
  44. package/dist/server/index.js +5 -1610
  45. package/dist/server/log-exporter.cjs +75 -102
  46. package/dist/server/log-exporter.cjs.map +1 -1
  47. package/dist/server/log-exporter.d.cts +27 -46
  48. package/dist/server/log-exporter.d.ts +27 -46
  49. package/dist/server/log-exporter.js +74 -100
  50. package/dist/server/log-exporter.js.map +1 -1
  51. package/dist/server/remote-exporter.cjs +171 -213
  52. package/dist/server/remote-exporter.cjs.map +1 -1
  53. package/dist/server/remote-exporter.d.cts +62 -82
  54. package/dist/server/remote-exporter.d.ts +62 -82
  55. package/dist/server/remote-exporter.js +170 -212
  56. package/dist/server/remote-exporter.js.map +1 -1
  57. package/dist/widget.global.js +10 -10
  58. package/package.json +5 -5
  59. package/dist/error-aggregator-D0Uu5r38.d.ts +0 -147
  60. package/dist/error-aggregator-D1Mr221Y.d.cts +0 -147
  61. package/dist/exporter-De6p4iAD.d.cts +0 -182
  62. package/dist/exporter-De6p4iAD.d.ts +0 -182
  63. package/dist/server/index.cjs.map +0 -1
  64. package/dist/server/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autotel-devtools",
3
- "version": "8.1.0",
3
+ "version": "9.0.0",
4
4
  "description": "Standalone OTLP receiver with web UI for local development",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -82,7 +82,7 @@
82
82
  "storybook": "^10.4.2",
83
83
  "svelte-check": "^4.6.0",
84
84
  "tailwindcss": "^4.3.0",
85
- "tsup": "^8.5.1",
85
+ "tsdown": "^0.22.2",
86
86
  "typescript": "^6.0.3",
87
87
  "vite": "^8.0.16",
88
88
  "vitest": "^4.1.8",
@@ -90,7 +90,7 @@
90
90
  "vitest-mock-extended": "^4.0.0"
91
91
  },
92
92
  "peerDependencies": {
93
- "autotel": "3.6.0"
93
+ "autotel": "3.7.0"
94
94
  },
95
95
  "peerDependenciesMeta": {
96
96
  "autotel": {
@@ -104,8 +104,8 @@
104
104
  },
105
105
  "license": "MIT",
106
106
  "scripts": {
107
- "build": "tsup && vite build --config vite.widget.config.ts",
108
- "dev": "tsup --watch",
107
+ "build": "tsdown && vite build --config vite.widget.config.ts",
108
+ "dev": "tsdown --watch",
109
109
  "type-check": "svelte-check --tsconfig ./tsconfig.json && tsc --noEmit",
110
110
  "lint": "eslint src/",
111
111
  "test": "vitest run --config vitest.config.ts --project server && vitest run --config vitest.config.ts --project widget && vitest run --config vitest.storybook.config.ts",
@@ -1,147 +0,0 @@
1
- import { c as ErrorOccurrence, E as ErrorGroup, T as TraceData } from './exporter-De6p4iAD.js';
2
-
3
- /**
4
- * Error Aggregator
5
- *
6
- * Groups similar errors together based on stack trace fingerprinting.
7
- * Tracks error frequency, first/last occurrence, and affected traces.
8
- *
9
- * @example
10
- * ```typescript
11
- * const aggregator = new ErrorAggregator({ maxGroups: 100 });
12
- *
13
- * // Add errors from spans
14
- * aggregator.addError({
15
- * traceId: '123',
16
- * spanId: '456',
17
- * spanName: 'api.createUser',
18
- * service: 'user-service',
19
- * timestamp: Date.now(),
20
- * error: {
21
- * type: 'ValidationError',
22
- * message: 'Invalid email format',
23
- * stackTrace: 'Error: Invalid email...'
24
- * }
25
- * });
26
- *
27
- * // Get aggregated error groups
28
- * const groups = aggregator.getErrorGroups();
29
- * ```
30
- */
31
-
32
- interface ErrorAggregatorOptions {
33
- /**
34
- * Maximum number of error groups to track (default: 100)
35
- * Oldest groups are evicted when limit is reached
36
- */
37
- maxGroups?: number;
38
- /**
39
- * Maximum number of affected traces to keep per group (default: 10)
40
- */
41
- maxAffectedTraces?: number;
42
- /**
43
- * Maximum number of affected span names to keep per group (default: 5)
44
- */
45
- maxAffectedSpans?: number;
46
- /**
47
- * Number of stack frames to use for fingerprinting (default: 5)
48
- */
49
- stackFramesForFingerprint?: number;
50
- }
51
- declare class ErrorAggregator {
52
- private errorGroups;
53
- private options;
54
- constructor(options?: ErrorAggregatorOptions);
55
- /**
56
- * Add an error occurrence to the aggregator
57
- */
58
- addError(occurrence: ErrorOccurrence): ErrorGroup;
59
- /**
60
- * Extract errors from a trace and add them to the aggregator
61
- */
62
- addErrorsFromTrace(trace: TraceData): ErrorGroup[];
63
- /**
64
- * Extract error occurrence from a span
65
- */
66
- private extractErrorFromSpan;
67
- /**
68
- * Extract stack trace from span events (exception events)
69
- */
70
- private extractStackFromEvents;
71
- /**
72
- * Extract relevant attributes for error context
73
- */
74
- private extractRelevantAttributes;
75
- /**
76
- * Generate a fingerprint for error grouping
77
- *
78
- * Uses error type + first N stack frames (normalized)
79
- */
80
- private generateFingerprint;
81
- /**
82
- * Extract and normalize stack frames from a stack trace
83
- */
84
- private extractStackFrames;
85
- /**
86
- * Normalize file path by removing absolute path prefixes and node_modules paths
87
- */
88
- private normalizeFilePath;
89
- /**
90
- * Normalize error message by removing dynamic parts
91
- */
92
- private normalizeMessage;
93
- /**
94
- * Normalize stack trace for display
95
- */
96
- private normalizeStackTrace;
97
- /**
98
- * Simple hash function for fingerprinting
99
- */
100
- private simpleHash;
101
- /**
102
- * Evict the oldest error group
103
- */
104
- private evictOldestGroup;
105
- /**
106
- * Get all error groups, sorted by most recent
107
- */
108
- getErrorGroups(): ErrorGroup[];
109
- /**
110
- * Get error groups sorted by count (most frequent first)
111
- */
112
- getErrorGroupsByFrequency(): ErrorGroup[];
113
- /**
114
- * Get a specific error group by fingerprint
115
- */
116
- getErrorGroup(fingerprint: string): ErrorGroup | undefined;
117
- /**
118
- * Get error groups for a specific service
119
- */
120
- getErrorGroupsByService(service: string): ErrorGroup[];
121
- /**
122
- * Get total error count across all groups
123
- */
124
- getTotalErrorCount(): number;
125
- /**
126
- * Get error statistics
127
- */
128
- getStats(): {
129
- totalGroups: number;
130
- totalErrors: number;
131
- recentErrors: number;
132
- topErrorTypes: Array<{
133
- type: string;
134
- count: number;
135
- }>;
136
- };
137
- /**
138
- * Clear all error groups
139
- */
140
- clear(): void;
141
- /**
142
- * Clear old error groups (not seen in given time window)
143
- */
144
- clearOlderThan(maxAgeMs: number): number;
145
- }
146
-
147
- export { ErrorAggregator as E };
@@ -1,147 +0,0 @@
1
- import { c as ErrorOccurrence, E as ErrorGroup, T as TraceData } from './exporter-De6p4iAD.cjs';
2
-
3
- /**
4
- * Error Aggregator
5
- *
6
- * Groups similar errors together based on stack trace fingerprinting.
7
- * Tracks error frequency, first/last occurrence, and affected traces.
8
- *
9
- * @example
10
- * ```typescript
11
- * const aggregator = new ErrorAggregator({ maxGroups: 100 });
12
- *
13
- * // Add errors from spans
14
- * aggregator.addError({
15
- * traceId: '123',
16
- * spanId: '456',
17
- * spanName: 'api.createUser',
18
- * service: 'user-service',
19
- * timestamp: Date.now(),
20
- * error: {
21
- * type: 'ValidationError',
22
- * message: 'Invalid email format',
23
- * stackTrace: 'Error: Invalid email...'
24
- * }
25
- * });
26
- *
27
- * // Get aggregated error groups
28
- * const groups = aggregator.getErrorGroups();
29
- * ```
30
- */
31
-
32
- interface ErrorAggregatorOptions {
33
- /**
34
- * Maximum number of error groups to track (default: 100)
35
- * Oldest groups are evicted when limit is reached
36
- */
37
- maxGroups?: number;
38
- /**
39
- * Maximum number of affected traces to keep per group (default: 10)
40
- */
41
- maxAffectedTraces?: number;
42
- /**
43
- * Maximum number of affected span names to keep per group (default: 5)
44
- */
45
- maxAffectedSpans?: number;
46
- /**
47
- * Number of stack frames to use for fingerprinting (default: 5)
48
- */
49
- stackFramesForFingerprint?: number;
50
- }
51
- declare class ErrorAggregator {
52
- private errorGroups;
53
- private options;
54
- constructor(options?: ErrorAggregatorOptions);
55
- /**
56
- * Add an error occurrence to the aggregator
57
- */
58
- addError(occurrence: ErrorOccurrence): ErrorGroup;
59
- /**
60
- * Extract errors from a trace and add them to the aggregator
61
- */
62
- addErrorsFromTrace(trace: TraceData): ErrorGroup[];
63
- /**
64
- * Extract error occurrence from a span
65
- */
66
- private extractErrorFromSpan;
67
- /**
68
- * Extract stack trace from span events (exception events)
69
- */
70
- private extractStackFromEvents;
71
- /**
72
- * Extract relevant attributes for error context
73
- */
74
- private extractRelevantAttributes;
75
- /**
76
- * Generate a fingerprint for error grouping
77
- *
78
- * Uses error type + first N stack frames (normalized)
79
- */
80
- private generateFingerprint;
81
- /**
82
- * Extract and normalize stack frames from a stack trace
83
- */
84
- private extractStackFrames;
85
- /**
86
- * Normalize file path by removing absolute path prefixes and node_modules paths
87
- */
88
- private normalizeFilePath;
89
- /**
90
- * Normalize error message by removing dynamic parts
91
- */
92
- private normalizeMessage;
93
- /**
94
- * Normalize stack trace for display
95
- */
96
- private normalizeStackTrace;
97
- /**
98
- * Simple hash function for fingerprinting
99
- */
100
- private simpleHash;
101
- /**
102
- * Evict the oldest error group
103
- */
104
- private evictOldestGroup;
105
- /**
106
- * Get all error groups, sorted by most recent
107
- */
108
- getErrorGroups(): ErrorGroup[];
109
- /**
110
- * Get error groups sorted by count (most frequent first)
111
- */
112
- getErrorGroupsByFrequency(): ErrorGroup[];
113
- /**
114
- * Get a specific error group by fingerprint
115
- */
116
- getErrorGroup(fingerprint: string): ErrorGroup | undefined;
117
- /**
118
- * Get error groups for a specific service
119
- */
120
- getErrorGroupsByService(service: string): ErrorGroup[];
121
- /**
122
- * Get total error count across all groups
123
- */
124
- getTotalErrorCount(): number;
125
- /**
126
- * Get error statistics
127
- */
128
- getStats(): {
129
- totalGroups: number;
130
- totalErrors: number;
131
- recentErrors: number;
132
- topErrorTypes: Array<{
133
- type: string;
134
- count: number;
135
- }>;
136
- };
137
- /**
138
- * Clear all error groups
139
- */
140
- clear(): void;
141
- /**
142
- * Clear old error groups (not seen in given time window)
143
- */
144
- clearOlderThan(maxAgeMs: number): number;
145
- }
146
-
147
- export { ErrorAggregator as E };
@@ -1,182 +0,0 @@
1
- import { SpanExporter, ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
- import { ExportResult } from '@opentelemetry/core';
3
- import { Server } from 'node:http';
4
-
5
- interface SpanData {
6
- traceId: string;
7
- spanId: string;
8
- parentSpanId?: string;
9
- name: string;
10
- kind: 'INTERNAL' | 'SERVER' | 'CLIENT' | 'PRODUCER' | 'CONSUMER';
11
- startTime: number;
12
- endTime: number;
13
- duration: number;
14
- attributes: Record<string, any>;
15
- status: {
16
- code: 'OK' | 'ERROR' | 'UNSET';
17
- message?: string;
18
- };
19
- events?: Array<{
20
- name: string;
21
- timestamp: number;
22
- attributes?: Record<string, any>;
23
- }>;
24
- links?: Array<{
25
- traceId: string;
26
- spanId: string;
27
- attributes?: Record<string, any>;
28
- }>;
29
- scope?: {
30
- name?: string;
31
- version?: string;
32
- };
33
- }
34
- interface TraceData {
35
- traceId: string;
36
- correlationId: string;
37
- rootSpan: SpanData;
38
- spans: SpanData[];
39
- startTime: number;
40
- endTime: number;
41
- duration: number;
42
- status: 'OK' | 'ERROR' | 'UNSET';
43
- service: string;
44
- }
45
- interface LogData {
46
- id: string;
47
- traceId?: string;
48
- spanId?: string;
49
- resourceName?: string;
50
- severityText?: string;
51
- severityNumber?: number;
52
- body: string | Record<string, unknown>;
53
- timestamp: number;
54
- attributes?: Record<string, unknown>;
55
- resource?: Record<string, unknown>;
56
- }
57
- interface MetricData {
58
- type: 'event' | 'funnel' | 'outcome' | 'value';
59
- name: string;
60
- value?: number;
61
- attributes: Record<string, any>;
62
- timestamp: number;
63
- traceId?: string;
64
- }
65
- interface ErrorGroup {
66
- fingerprint: string;
67
- type: string;
68
- message: string;
69
- stackTrace?: string;
70
- count: number;
71
- firstSeen: number;
72
- lastSeen: number;
73
- affectedTraces: string[];
74
- affectedSpans: string[];
75
- service?: string;
76
- attributes?: Record<string, unknown>;
77
- }
78
- interface ErrorOccurrence {
79
- traceId: string;
80
- spanId: string;
81
- spanName: string;
82
- service: string;
83
- timestamp: number;
84
- error: {
85
- type: string;
86
- message: string;
87
- stackTrace?: string;
88
- };
89
- attributes?: Record<string, unknown>;
90
- }
91
- interface DevtoolsData {
92
- traces: TraceData[];
93
- metrics: MetricData[];
94
- logs: LogData[];
95
- errors: ErrorGroup[];
96
- }
97
-
98
- interface DevtoolsServerOptions {
99
- port?: number;
100
- server?: Server;
101
- path?: string;
102
- verbose?: boolean;
103
- maxHistory?: number;
104
- maxTraceCount?: number;
105
- maxLogCount?: number;
106
- maxMetricCount?: number;
107
- /**
108
- * Bind host, used only to decide the WebSocket origin policy. A loopback host
109
- * (the default) enables the DNS-rebinding `Host` check on the live stream; an
110
- * explicit non-loopback bind opts out, leaving just the cross-origin check.
111
- */
112
- host?: string;
113
- /**
114
- * Called after each ingest, with the incremental data just broadcast to WS
115
- * clients. Lets an embedder (e.g. the VS Code extension) react to new
116
- * telemetry — refresh its own tree views — while the server owns the buffer.
117
- */
118
- onData?: (incremental: DevtoolsData) => void;
119
- }
120
- declare class DevtoolsServer {
121
- private wss;
122
- private clients;
123
- private httpServer;
124
- private traces;
125
- private logs;
126
- private metrics;
127
- private errorAggregator;
128
- private limits;
129
- private verbose;
130
- private _port;
131
- private onData?;
132
- constructor(options?: DevtoolsServerOptions);
133
- get port(): number;
134
- get clientCount(): number;
135
- addTrace(trace: TraceData): void;
136
- addTraces(traces: TraceData[]): void;
137
- addLog(log: LogData): void;
138
- addLogs(logs: LogData[]): void;
139
- addMetric(metric: MetricData): void;
140
- getCurrentData(): DevtoolsData;
141
- clearData(): void;
142
- private broadcast;
143
- private log;
144
- close(): Promise<void>;
145
- }
146
-
147
- /**
148
- * OpenTelemetry SpanExporter that streams spans to DevtoolsServer
149
- */
150
-
151
- declare class DevtoolsSpanExporter implements SpanExporter {
152
- private server;
153
- private serviceName;
154
- constructor(server: DevtoolsServer, serviceName?: string);
155
- /**
156
- * Export spans to the WebSocket server
157
- */
158
- export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): Promise<void>;
159
- /**
160
- * Shutdown the exporter
161
- */
162
- shutdown(): Promise<void>;
163
- /**
164
- * Force flush any buffered spans
165
- */
166
- forceFlush(): Promise<void>;
167
- /**
168
- * Convert OpenTelemetry spans to TraceData
169
- */
170
- private convertToTraceData;
171
- /**
172
- * Convert OpenTelemetry span to SpanData
173
- */
174
- private convertSpan;
175
- private convertScope;
176
- /**
177
- * Convert OpenTelemetry SpanKind to string
178
- */
179
- private convertSpanKind;
180
- }
181
-
182
- export { DevtoolsServer as D, type ErrorGroup as E, type LogData as L, type MetricData as M, type SpanData as S, type TraceData as T, DevtoolsSpanExporter as a, type DevtoolsData as b, type ErrorOccurrence as c, type DevtoolsServerOptions as d };
@@ -1,182 +0,0 @@
1
- import { SpanExporter, ReadableSpan } from '@opentelemetry/sdk-trace-base';
2
- import { ExportResult } from '@opentelemetry/core';
3
- import { Server } from 'node:http';
4
-
5
- interface SpanData {
6
- traceId: string;
7
- spanId: string;
8
- parentSpanId?: string;
9
- name: string;
10
- kind: 'INTERNAL' | 'SERVER' | 'CLIENT' | 'PRODUCER' | 'CONSUMER';
11
- startTime: number;
12
- endTime: number;
13
- duration: number;
14
- attributes: Record<string, any>;
15
- status: {
16
- code: 'OK' | 'ERROR' | 'UNSET';
17
- message?: string;
18
- };
19
- events?: Array<{
20
- name: string;
21
- timestamp: number;
22
- attributes?: Record<string, any>;
23
- }>;
24
- links?: Array<{
25
- traceId: string;
26
- spanId: string;
27
- attributes?: Record<string, any>;
28
- }>;
29
- scope?: {
30
- name?: string;
31
- version?: string;
32
- };
33
- }
34
- interface TraceData {
35
- traceId: string;
36
- correlationId: string;
37
- rootSpan: SpanData;
38
- spans: SpanData[];
39
- startTime: number;
40
- endTime: number;
41
- duration: number;
42
- status: 'OK' | 'ERROR' | 'UNSET';
43
- service: string;
44
- }
45
- interface LogData {
46
- id: string;
47
- traceId?: string;
48
- spanId?: string;
49
- resourceName?: string;
50
- severityText?: string;
51
- severityNumber?: number;
52
- body: string | Record<string, unknown>;
53
- timestamp: number;
54
- attributes?: Record<string, unknown>;
55
- resource?: Record<string, unknown>;
56
- }
57
- interface MetricData {
58
- type: 'event' | 'funnel' | 'outcome' | 'value';
59
- name: string;
60
- value?: number;
61
- attributes: Record<string, any>;
62
- timestamp: number;
63
- traceId?: string;
64
- }
65
- interface ErrorGroup {
66
- fingerprint: string;
67
- type: string;
68
- message: string;
69
- stackTrace?: string;
70
- count: number;
71
- firstSeen: number;
72
- lastSeen: number;
73
- affectedTraces: string[];
74
- affectedSpans: string[];
75
- service?: string;
76
- attributes?: Record<string, unknown>;
77
- }
78
- interface ErrorOccurrence {
79
- traceId: string;
80
- spanId: string;
81
- spanName: string;
82
- service: string;
83
- timestamp: number;
84
- error: {
85
- type: string;
86
- message: string;
87
- stackTrace?: string;
88
- };
89
- attributes?: Record<string, unknown>;
90
- }
91
- interface DevtoolsData {
92
- traces: TraceData[];
93
- metrics: MetricData[];
94
- logs: LogData[];
95
- errors: ErrorGroup[];
96
- }
97
-
98
- interface DevtoolsServerOptions {
99
- port?: number;
100
- server?: Server;
101
- path?: string;
102
- verbose?: boolean;
103
- maxHistory?: number;
104
- maxTraceCount?: number;
105
- maxLogCount?: number;
106
- maxMetricCount?: number;
107
- /**
108
- * Bind host, used only to decide the WebSocket origin policy. A loopback host
109
- * (the default) enables the DNS-rebinding `Host` check on the live stream; an
110
- * explicit non-loopback bind opts out, leaving just the cross-origin check.
111
- */
112
- host?: string;
113
- /**
114
- * Called after each ingest, with the incremental data just broadcast to WS
115
- * clients. Lets an embedder (e.g. the VS Code extension) react to new
116
- * telemetry — refresh its own tree views — while the server owns the buffer.
117
- */
118
- onData?: (incremental: DevtoolsData) => void;
119
- }
120
- declare class DevtoolsServer {
121
- private wss;
122
- private clients;
123
- private httpServer;
124
- private traces;
125
- private logs;
126
- private metrics;
127
- private errorAggregator;
128
- private limits;
129
- private verbose;
130
- private _port;
131
- private onData?;
132
- constructor(options?: DevtoolsServerOptions);
133
- get port(): number;
134
- get clientCount(): number;
135
- addTrace(trace: TraceData): void;
136
- addTraces(traces: TraceData[]): void;
137
- addLog(log: LogData): void;
138
- addLogs(logs: LogData[]): void;
139
- addMetric(metric: MetricData): void;
140
- getCurrentData(): DevtoolsData;
141
- clearData(): void;
142
- private broadcast;
143
- private log;
144
- close(): Promise<void>;
145
- }
146
-
147
- /**
148
- * OpenTelemetry SpanExporter that streams spans to DevtoolsServer
149
- */
150
-
151
- declare class DevtoolsSpanExporter implements SpanExporter {
152
- private server;
153
- private serviceName;
154
- constructor(server: DevtoolsServer, serviceName?: string);
155
- /**
156
- * Export spans to the WebSocket server
157
- */
158
- export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): Promise<void>;
159
- /**
160
- * Shutdown the exporter
161
- */
162
- shutdown(): Promise<void>;
163
- /**
164
- * Force flush any buffered spans
165
- */
166
- forceFlush(): Promise<void>;
167
- /**
168
- * Convert OpenTelemetry spans to TraceData
169
- */
170
- private convertToTraceData;
171
- /**
172
- * Convert OpenTelemetry span to SpanData
173
- */
174
- private convertSpan;
175
- private convertScope;
176
- /**
177
- * Convert OpenTelemetry SpanKind to string
178
- */
179
- private convertSpanKind;
180
- }
181
-
182
- export { DevtoolsServer as D, type ErrorGroup as E, type LogData as L, type MetricData as M, type SpanData as S, type TraceData as T, DevtoolsSpanExporter as a, type DevtoolsData as b, type ErrorOccurrence as c, type DevtoolsServerOptions as d };