autotel-devtools 8.1.1 → 10.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.
- package/dist/cli.cjs +108 -1429
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +109 -1422
- package/dist/cli.js.map +1 -1
- package/dist/error-aggregator-BvNmgn7E.d.ts +120 -0
- package/dist/error-aggregator-nnfbpSR7.d.cts +120 -0
- package/dist/exporter-1Y3GmLVS.d.cts +182 -0
- package/dist/exporter-CZ5HdD3o.d.ts +182 -0
- package/dist/genai/index.cjs +650 -537
- package/dist/genai/index.cjs.map +1 -1
- package/dist/genai/index.d.cts +164 -157
- package/dist/genai/index.d.ts +164 -157
- package/dist/genai/index.js +649 -536
- package/dist/genai/index.js.map +1 -1
- package/dist/http-BkkKa9C_.js +1128 -0
- package/dist/http-BkkKa9C_.js.map +1 -0
- package/dist/http-Yj6iSrMX.cjs +1275 -0
- package/dist/http-Yj6iSrMX.cjs.map +1 -0
- package/dist/index.cjs +50 -1728
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -23
- package/dist/index.d.ts +21 -23
- package/dist/index.js +44 -1716
- package/dist/index.js.map +1 -1
- package/dist/listen-BBsxO0wm.cjs +125 -0
- package/dist/listen-BBsxO0wm.cjs.map +1 -0
- package/dist/listen-DfOCquUq.js +120 -0
- package/dist/listen-DfOCquUq.js.map +1 -0
- package/dist/resource-utils-B4UVvfnH.js +18 -0
- package/dist/resource-utils-B4UVvfnH.js.map +1 -0
- package/dist/resource-utils-DjHJB6uc.cjs +24 -0
- package/dist/resource-utils-DjHJB6uc.cjs.map +1 -0
- package/dist/server/exporter.cjs +135 -159
- package/dist/server/exporter.cjs.map +1 -1
- package/dist/server/exporter.d.cts +2 -4
- package/dist/server/exporter.d.ts +2 -4
- package/dist/server/exporter.js +134 -158
- package/dist/server/exporter.js.map +1 -1
- package/dist/server/index.cjs +29 -1660
- package/dist/server/index.d.cts +34 -31
- package/dist/server/index.d.ts +34 -31
- package/dist/server/index.js +5 -1630
- package/dist/server/log-exporter.cjs +75 -102
- package/dist/server/log-exporter.cjs.map +1 -1
- package/dist/server/log-exporter.d.cts +27 -46
- package/dist/server/log-exporter.d.ts +27 -46
- package/dist/server/log-exporter.js +74 -100
- package/dist/server/log-exporter.js.map +1 -1
- package/dist/server/remote-exporter.cjs +171 -213
- package/dist/server/remote-exporter.cjs.map +1 -1
- package/dist/server/remote-exporter.d.cts +62 -82
- package/dist/server/remote-exporter.d.ts +62 -82
- package/dist/server/remote-exporter.js +170 -212
- package/dist/server/remote-exporter.js.map +1 -1
- package/package.json +5 -5
- package/dist/error-aggregator-D0Uu5r38.d.ts +0 -147
- package/dist/error-aggregator-D1Mr221Y.d.cts +0 -147
- package/dist/exporter-De6p4iAD.d.cts +0 -182
- package/dist/exporter-De6p4iAD.d.ts +0 -182
- package/dist/server/index.cjs.map +0 -1
- package/dist/server/index.js.map +0 -1
|
@@ -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 };
|