sonamu 0.9.9 → 0.9.10
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/ai/agents/agent.d.ts.map +1 -1
- package/dist/ai/agents/agent.js +4 -2
- package/dist/ai/providers/rtzr/api.d.ts +1 -1
- package/dist/api/decorators.d.ts +0 -1
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +8 -6
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +123 -12
- package/dist/api/websocket-helpers.d.ts +1 -3
- package/dist/api/websocket-helpers.d.ts.map +1 -1
- package/dist/api/websocket-helpers.js +2 -15
- package/dist/stream/index.d.ts +3 -0
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +8 -2
- package/dist/stream/ws-core.d.ts +1 -0
- package/dist/stream/ws-core.d.ts.map +1 -1
- package/dist/stream/ws-delivery.d.ts +8 -0
- package/dist/stream/ws-delivery.d.ts.map +1 -1
- package/dist/stream/ws-delivery.js +160 -14
- package/dist/stream/ws-local-connection-store.d.ts +2 -0
- package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
- package/dist/stream/ws-local-connection-store.js +21 -1
- package/dist/stream/ws-registry.d.ts +6 -2
- package/dist/stream/ws-registry.d.ts.map +1 -1
- package/dist/stream/ws-registry.js +170 -6
- package/dist/stream/ws-telemetry-memory.d.ts +28 -0
- package/dist/stream/ws-telemetry-memory.d.ts.map +1 -0
- package/dist/stream/ws-telemetry-memory.js +180 -0
- package/dist/stream/ws-telemetry-trace.d.ts +12 -0
- package/dist/stream/ws-telemetry-trace.d.ts.map +1 -0
- package/dist/stream/ws-telemetry-trace.js +41 -0
- package/dist/stream/ws-telemetry.d.ts +509 -0
- package/dist/stream/ws-telemetry.d.ts.map +1 -0
- package/dist/stream/ws-telemetry.js +931 -0
- package/dist/stream/ws.d.ts +10 -3
- package/dist/stream/ws.d.ts.map +1 -1
- package/dist/stream/ws.js +306 -27
- package/dist/syncer/file-patterns.js +1 -1
- package/dist/syncer/syncer.d.ts +1 -1
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +7 -4
- package/dist/template/template.d.ts +1 -2
- package/dist/template/template.d.ts.map +1 -1
- package/dist/template/template.js +3 -4
- package/dist/template/zod-converter.d.ts +2 -2
- package/dist/testing/dev-vitest-manager.d.ts +1 -1
- package/dist/testing/dev-vitest-manager.js +2 -2
- package/dist/types/types.d.ts +11 -5
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +2 -2
- package/dist/utils/class-name.d.ts +6 -0
- package/dist/utils/class-name.d.ts.map +1 -0
- package/dist/utils/class-name.js +19 -0
- package/package.json +4 -4
- package/src/ai/agents/agent.ts +2 -1
- package/src/api/__tests__/sonamu.websocket.test.ts +84 -10
- package/src/api/decorators.ts +6 -6
- package/src/api/sonamu.ts +142 -7
- package/src/api/websocket-helpers.ts +2 -28
- package/src/shared/app.shared.ts.txt +8 -7
- package/src/shared/web.shared.ts.txt +8 -7
- package/src/skills/sonamu/testing-devrunner.md +1 -1
- package/src/stream/__tests__/ws-telemetry.test.ts +821 -0
- package/src/stream/__tests__/ws.test.ts +362 -2
- package/src/stream/index.ts +3 -0
- package/src/stream/ws-core.ts +2 -0
- package/src/stream/ws-delivery.ts +161 -19
- package/src/stream/ws-local-connection-store.ts +33 -0
- package/src/stream/ws-registry.ts +186 -5
- package/src/stream/ws-telemetry-memory.ts +246 -0
- package/src/stream/ws-telemetry-trace.ts +52 -0
- package/src/stream/ws-telemetry.ts +1772 -0
- package/src/stream/ws.ts +332 -34
- package/src/syncer/file-patterns.ts +2 -2
- package/src/syncer/syncer.ts +8 -4
- package/src/template/__tests__/services.template.websocket.test.ts +2 -0
- package/src/template/template.ts +2 -3
- package/src/testing/dev-vitest-manager.ts +1 -1
- package/src/types/types.ts +10 -3
- package/src/utils/class-name.ts +12 -0
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
export type WebSocketTelemetryRecordBase = {
|
|
2
|
+
timestamp: number;
|
|
3
|
+
monotonicTime?: number;
|
|
4
|
+
runtimeId: string;
|
|
5
|
+
nodeId: string;
|
|
6
|
+
namespace?: string;
|
|
7
|
+
connectionId?: string;
|
|
8
|
+
userId?: string;
|
|
9
|
+
traceId?: string;
|
|
10
|
+
spanId?: string;
|
|
11
|
+
parentSpanId?: string;
|
|
12
|
+
sampled?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type WebSocketTelemetryEventRecord = WebSocketTelemetryRecordBase & {
|
|
15
|
+
type: "event";
|
|
16
|
+
name: string;
|
|
17
|
+
level: "debug" | "info" | "warn" | "error";
|
|
18
|
+
attributes?: Record<string, string | number | boolean>;
|
|
19
|
+
detail?: Record<string, unknown>;
|
|
20
|
+
payloadPreview?: string;
|
|
21
|
+
};
|
|
22
|
+
export type WebSocketTelemetryMetricRecord = WebSocketTelemetryRecordBase & {
|
|
23
|
+
type: "metric";
|
|
24
|
+
name: string;
|
|
25
|
+
kind: "counter" | "histogram" | "gauge";
|
|
26
|
+
value: number;
|
|
27
|
+
unit?: "1" | "ms" | "By";
|
|
28
|
+
tags?: Record<string, string>;
|
|
29
|
+
snapshot?: WebSocketTelemetryMetricsSnapshot;
|
|
30
|
+
};
|
|
31
|
+
export type WebSocketTelemetrySpanRecord = WebSocketTelemetryRecordBase & {
|
|
32
|
+
type: "span";
|
|
33
|
+
operationName: string;
|
|
34
|
+
kind: "internal" | "producer" | "consumer" | "server" | "client";
|
|
35
|
+
durationMs: number;
|
|
36
|
+
status: "unset" | "ok" | "error";
|
|
37
|
+
attributes?: Record<string, string | number | boolean>;
|
|
38
|
+
errorType?: string;
|
|
39
|
+
events?: Array<{
|
|
40
|
+
name: string;
|
|
41
|
+
timestamp: number;
|
|
42
|
+
attributes?: Record<string, unknown>;
|
|
43
|
+
}>;
|
|
44
|
+
links?: Array<{
|
|
45
|
+
traceId: string;
|
|
46
|
+
spanId: string;
|
|
47
|
+
attributes?: Record<string, unknown>;
|
|
48
|
+
}>;
|
|
49
|
+
};
|
|
50
|
+
export type WebSocketTelemetryRecord = WebSocketTelemetryEventRecord | WebSocketTelemetryMetricRecord | WebSocketTelemetrySpanRecord;
|
|
51
|
+
export type WebSocketTelemetryEventInput = {
|
|
52
|
+
name: string;
|
|
53
|
+
level: "debug" | "info" | "warn" | "error";
|
|
54
|
+
namespace?: string;
|
|
55
|
+
connectionId?: string;
|
|
56
|
+
userId?: string;
|
|
57
|
+
attributes?: Record<string, string | number | boolean>;
|
|
58
|
+
detail?: Record<string, unknown>;
|
|
59
|
+
payload?: unknown;
|
|
60
|
+
traceId?: string;
|
|
61
|
+
spanId?: string;
|
|
62
|
+
parentSpanId?: string;
|
|
63
|
+
sampled?: boolean;
|
|
64
|
+
};
|
|
65
|
+
export type WebSocketMetricInput = {
|
|
66
|
+
name: string;
|
|
67
|
+
kind: "counter" | "histogram" | "gauge";
|
|
68
|
+
value: number;
|
|
69
|
+
unit?: "1" | "ms" | "By";
|
|
70
|
+
tags?: Record<string, string>;
|
|
71
|
+
namespace?: string;
|
|
72
|
+
connectionId?: string;
|
|
73
|
+
userId?: string;
|
|
74
|
+
traceId?: string;
|
|
75
|
+
spanId?: string;
|
|
76
|
+
parentSpanId?: string;
|
|
77
|
+
sampled?: boolean;
|
|
78
|
+
snapshot?: WebSocketTelemetryMetricsSnapshot;
|
|
79
|
+
};
|
|
80
|
+
export type WebSocketSpanInput = {
|
|
81
|
+
operationName: string;
|
|
82
|
+
kind: "internal" | "producer" | "consumer" | "server" | "client";
|
|
83
|
+
durationMs: number;
|
|
84
|
+
status: "unset" | "ok" | "error";
|
|
85
|
+
namespace?: string;
|
|
86
|
+
connectionId?: string;
|
|
87
|
+
userId?: string;
|
|
88
|
+
attributes?: Record<string, string | number | boolean>;
|
|
89
|
+
errorType?: string;
|
|
90
|
+
traceId?: string;
|
|
91
|
+
spanId?: string;
|
|
92
|
+
parentSpanId?: string;
|
|
93
|
+
sampled?: boolean;
|
|
94
|
+
events?: Array<{
|
|
95
|
+
name: string;
|
|
96
|
+
timestamp: number;
|
|
97
|
+
attributes?: Record<string, unknown>;
|
|
98
|
+
}>;
|
|
99
|
+
links?: Array<{
|
|
100
|
+
traceId: string;
|
|
101
|
+
spanId: string;
|
|
102
|
+
attributes?: Record<string, unknown>;
|
|
103
|
+
}>;
|
|
104
|
+
};
|
|
105
|
+
export type WebSocketTelemetryInput = ({
|
|
106
|
+
type: "event";
|
|
107
|
+
} & WebSocketTelemetryEventInput) | ({
|
|
108
|
+
type: "metric";
|
|
109
|
+
} & WebSocketMetricInput) | ({
|
|
110
|
+
type: "span";
|
|
111
|
+
} & WebSocketSpanInput);
|
|
112
|
+
export type WebSocketTelemetryMetricsSnapshot = {
|
|
113
|
+
timestamp: number;
|
|
114
|
+
activeConnections: number;
|
|
115
|
+
activeConnectionsByNamespace: Record<string, number>;
|
|
116
|
+
roomCount: number;
|
|
117
|
+
pendingInboundMessages: number;
|
|
118
|
+
pendingOutboundMessages: number;
|
|
119
|
+
socketBufferedBytes: number;
|
|
120
|
+
pendingFanOutJobs: number;
|
|
121
|
+
pendingFanOutTargets: number;
|
|
122
|
+
telemetryDroppedRecords: number;
|
|
123
|
+
telemetrySinkFailures: number;
|
|
124
|
+
};
|
|
125
|
+
export type WebSocketTelemetryConnectionSnapshot = {
|
|
126
|
+
pendingInboundMessages: number;
|
|
127
|
+
pendingOutboundMessages: number;
|
|
128
|
+
socketBufferedBytes: number;
|
|
129
|
+
};
|
|
130
|
+
export interface TelemetryInspectableConnection {
|
|
131
|
+
getTelemetrySnapshot(): WebSocketTelemetryConnectionSnapshot;
|
|
132
|
+
}
|
|
133
|
+
export interface WebSocketTelemetryEventSink {
|
|
134
|
+
emit(record: WebSocketTelemetryEventRecord): void | Promise<void>;
|
|
135
|
+
shutdown?(options?: {
|
|
136
|
+
timeoutMs?: number;
|
|
137
|
+
}): void | Promise<void>;
|
|
138
|
+
}
|
|
139
|
+
export interface WebSocketTelemetryMetricSink {
|
|
140
|
+
emit(record: WebSocketTelemetryMetricRecord): void | Promise<void>;
|
|
141
|
+
shutdown?(options?: {
|
|
142
|
+
timeoutMs?: number;
|
|
143
|
+
}): void | Promise<void>;
|
|
144
|
+
}
|
|
145
|
+
export interface WebSocketTelemetrySpanSink {
|
|
146
|
+
emit(record: WebSocketTelemetrySpanRecord): void | Promise<void>;
|
|
147
|
+
shutdown?(options?: {
|
|
148
|
+
timeoutMs?: number;
|
|
149
|
+
}): void | Promise<void>;
|
|
150
|
+
}
|
|
151
|
+
export type WebSocketTelemetryEventQueryFilter = {
|
|
152
|
+
name?: string;
|
|
153
|
+
level?: "debug" | "info" | "warn" | "error";
|
|
154
|
+
connectionId?: string;
|
|
155
|
+
userId?: string;
|
|
156
|
+
namespace?: string;
|
|
157
|
+
traceId?: string;
|
|
158
|
+
since?: number;
|
|
159
|
+
until?: number;
|
|
160
|
+
limit?: number;
|
|
161
|
+
};
|
|
162
|
+
export type WebSocketTelemetryMetricQueryFilter = {
|
|
163
|
+
name?: string;
|
|
164
|
+
kind?: "counter" | "histogram" | "gauge";
|
|
165
|
+
connectionId?: string;
|
|
166
|
+
userId?: string;
|
|
167
|
+
namespace?: string;
|
|
168
|
+
traceId?: string;
|
|
169
|
+
since?: number;
|
|
170
|
+
until?: number;
|
|
171
|
+
limit?: number;
|
|
172
|
+
};
|
|
173
|
+
export type WebSocketTelemetrySpanQueryFilter = {
|
|
174
|
+
operationName?: string;
|
|
175
|
+
kind?: "internal" | "producer" | "consumer" | "server" | "client";
|
|
176
|
+
status?: "unset" | "ok" | "error";
|
|
177
|
+
connectionId?: string;
|
|
178
|
+
userId?: string;
|
|
179
|
+
namespace?: string;
|
|
180
|
+
traceId?: string;
|
|
181
|
+
since?: number;
|
|
182
|
+
until?: number;
|
|
183
|
+
limit?: number;
|
|
184
|
+
};
|
|
185
|
+
export interface WebSocketTelemetryEventStore {
|
|
186
|
+
readonly sink: WebSocketTelemetryEventSink;
|
|
187
|
+
query(filter: WebSocketTelemetryEventQueryFilter): WebSocketTelemetryEventRecord[];
|
|
188
|
+
clear(): void;
|
|
189
|
+
}
|
|
190
|
+
export interface WebSocketTelemetryMetricStore {
|
|
191
|
+
readonly sink: WebSocketTelemetryMetricSink;
|
|
192
|
+
query(filter: WebSocketTelemetryMetricQueryFilter): WebSocketTelemetryMetricRecord[];
|
|
193
|
+
clear(): void;
|
|
194
|
+
}
|
|
195
|
+
export interface WebSocketTelemetrySpanStore {
|
|
196
|
+
readonly sink: WebSocketTelemetrySpanSink;
|
|
197
|
+
query(filter: WebSocketTelemetrySpanQueryFilter): WebSocketTelemetrySpanRecord[];
|
|
198
|
+
clear(): void;
|
|
199
|
+
}
|
|
200
|
+
export interface WebSocketTelemetryMetricSource {
|
|
201
|
+
collect(now: number): Partial<WebSocketTelemetryMetricsSnapshot>;
|
|
202
|
+
}
|
|
203
|
+
export type WebSocketTelemetryEventRedactor = (record: WebSocketTelemetryEventRecord) => WebSocketTelemetryEventRecord | null;
|
|
204
|
+
export type WebSocketTelemetryMetricRedactor = (record: WebSocketTelemetryMetricRecord) => WebSocketTelemetryMetricRecord | null;
|
|
205
|
+
export type WebSocketTelemetrySpanRedactor = (record: WebSocketTelemetrySpanRecord) => WebSocketTelemetrySpanRecord | null;
|
|
206
|
+
export type WebSocketTelemetryRedactor = (record: WebSocketTelemetryRecord) => WebSocketTelemetryRecord | null;
|
|
207
|
+
export type WebSocketTelemetryEventBeforeRecord = (record: WebSocketTelemetryEventRecord) => WebSocketTelemetryEventRecord | null;
|
|
208
|
+
export type WebSocketTelemetryMetricBeforeRecord = (record: WebSocketTelemetryMetricRecord) => WebSocketTelemetryMetricRecord | null;
|
|
209
|
+
export type WebSocketTelemetrySpanBeforeRecord = (record: WebSocketTelemetrySpanRecord) => WebSocketTelemetrySpanRecord | null;
|
|
210
|
+
export type WebSocketTelemetryBeforeRecord = (record: WebSocketTelemetryRecord) => WebSocketTelemetryRecord | null;
|
|
211
|
+
export type WebSocketTelemetryTraceOptions = {
|
|
212
|
+
extractTraceParent: boolean;
|
|
213
|
+
generateConnectionTrace: boolean;
|
|
214
|
+
propagateMessageTrace: boolean;
|
|
215
|
+
recordConnectionLifetimeSpan: boolean;
|
|
216
|
+
};
|
|
217
|
+
export type WebSocketTelemetryConnectionContext = {
|
|
218
|
+
traceId?: string;
|
|
219
|
+
spanId?: string;
|
|
220
|
+
parentSpanId?: string;
|
|
221
|
+
sampled?: boolean;
|
|
222
|
+
};
|
|
223
|
+
export interface TelemetryContextProvider {
|
|
224
|
+
getTelemetryContext(): WebSocketTelemetryConnectionContext;
|
|
225
|
+
}
|
|
226
|
+
export type WebSocketTelemetryEventSamplingOptions = {
|
|
227
|
+
defaultRate?: number;
|
|
228
|
+
rateByEvent?: Record<string, number>;
|
|
229
|
+
maxRecordsPerSecond?: number;
|
|
230
|
+
alwaysRecordLevels?: Array<"warn" | "error">;
|
|
231
|
+
};
|
|
232
|
+
export type WebSocketTelemetryMetricSamplingOptions = {
|
|
233
|
+
maxRecordsPerSecond?: number;
|
|
234
|
+
};
|
|
235
|
+
export type WebSocketTelemetrySpanSamplingOptions = {
|
|
236
|
+
defaultRate?: number;
|
|
237
|
+
maxRecordsPerSecond?: number;
|
|
238
|
+
};
|
|
239
|
+
export type WebSocketTelemetryDefaultsOptions = {
|
|
240
|
+
redactor?: WebSocketTelemetryRedactor;
|
|
241
|
+
beforeRecord?: WebSocketTelemetryBeforeRecord;
|
|
242
|
+
maxRecords?: number;
|
|
243
|
+
maxBytes?: number;
|
|
244
|
+
maxRecordsPerSecond?: number;
|
|
245
|
+
};
|
|
246
|
+
export type WebSocketTelemetryEventsOptions = {
|
|
247
|
+
sinks?: WebSocketTelemetryEventSink[];
|
|
248
|
+
store?: WebSocketTelemetryEventStore;
|
|
249
|
+
maxRecords?: number;
|
|
250
|
+
maxBytes?: number;
|
|
251
|
+
maxInFlightEmits?: number;
|
|
252
|
+
redactor?: WebSocketTelemetryEventRedactor | null;
|
|
253
|
+
beforeRecord?: WebSocketTelemetryEventBeforeRecord | null;
|
|
254
|
+
sampling?: WebSocketTelemetryEventSamplingOptions;
|
|
255
|
+
capturePayload?: false | "preview";
|
|
256
|
+
maxPayloadPreviewBytes?: number;
|
|
257
|
+
};
|
|
258
|
+
export type WebSocketTelemetryMetricsOptions = {
|
|
259
|
+
sinks?: WebSocketTelemetryMetricSink[];
|
|
260
|
+
store?: WebSocketTelemetryMetricStore;
|
|
261
|
+
maxRecords?: number;
|
|
262
|
+
maxBytes?: number;
|
|
263
|
+
maxInFlightEmits?: number;
|
|
264
|
+
redactor?: WebSocketTelemetryMetricRedactor | null;
|
|
265
|
+
beforeRecord?: WebSocketTelemetryMetricBeforeRecord | null;
|
|
266
|
+
sampling?: WebSocketTelemetryMetricSamplingOptions;
|
|
267
|
+
collectionEnabled?: boolean;
|
|
268
|
+
sampleIntervalMs?: number;
|
|
269
|
+
};
|
|
270
|
+
export type WebSocketTelemetrySpansOptions = {
|
|
271
|
+
sinks?: WebSocketTelemetrySpanSink[];
|
|
272
|
+
store?: WebSocketTelemetrySpanStore;
|
|
273
|
+
maxRecords?: number;
|
|
274
|
+
maxBytes?: number;
|
|
275
|
+
maxInFlightEmits?: number;
|
|
276
|
+
redactor?: WebSocketTelemetrySpanRedactor | null;
|
|
277
|
+
beforeRecord?: WebSocketTelemetrySpanBeforeRecord | null;
|
|
278
|
+
sampling?: WebSocketTelemetrySpanSamplingOptions;
|
|
279
|
+
};
|
|
280
|
+
export type WebSocketTelemetryOptions = {
|
|
281
|
+
enabled?: boolean;
|
|
282
|
+
controller?: WebSocketTelemetryController;
|
|
283
|
+
defaults?: WebSocketTelemetryDefaultsOptions;
|
|
284
|
+
events?: WebSocketTelemetryEventsOptions;
|
|
285
|
+
metrics?: WebSocketTelemetryMetricsOptions;
|
|
286
|
+
spans?: WebSocketTelemetrySpansOptions;
|
|
287
|
+
trace?: Partial<WebSocketTelemetryTraceOptions>;
|
|
288
|
+
shutdownTimeoutMs?: number;
|
|
289
|
+
};
|
|
290
|
+
export interface WebSocketTelemetryController {
|
|
291
|
+
emit(input: WebSocketTelemetryEventInput): void;
|
|
292
|
+
recordMetric(input: WebSocketMetricInput): void;
|
|
293
|
+
recordSpan(input: WebSocketSpanInput): void;
|
|
294
|
+
getMetricsSnapshot(): WebSocketTelemetryMetricsSnapshot;
|
|
295
|
+
getEventStore(): WebSocketTelemetryEventStore | undefined;
|
|
296
|
+
getMetricStore(): WebSocketTelemetryMetricStore | undefined;
|
|
297
|
+
getSpanStore(): WebSocketTelemetrySpanStore | undefined;
|
|
298
|
+
registerMetricSource(source: WebSocketTelemetryMetricSource): () => void;
|
|
299
|
+
createConnectionContext(request?: {
|
|
300
|
+
headers?: Readonly<Record<string, string | string[] | undefined>>;
|
|
301
|
+
}): WebSocketTelemetryConnectionContext;
|
|
302
|
+
getTraceOptions(): WebSocketTelemetryTraceOptions;
|
|
303
|
+
shutdown(options?: {
|
|
304
|
+
timeoutMs?: number;
|
|
305
|
+
}): Promise<void>;
|
|
306
|
+
}
|
|
307
|
+
export declare const EMPTY_METRICS_SNAPSHOT: WebSocketTelemetryMetricsSnapshot;
|
|
308
|
+
export declare const DEFAULT_TRACE_OPTIONS: WebSocketTelemetryTraceOptions;
|
|
309
|
+
export declare function isPromiseLike(value: unknown): value is Promise<void>;
|
|
310
|
+
declare class TokenBucket {
|
|
311
|
+
private readonly maxTokens;
|
|
312
|
+
private readonly refillRate;
|
|
313
|
+
private tokens;
|
|
314
|
+
private lastRefill;
|
|
315
|
+
constructor(maxTokens: number, refillRate: number);
|
|
316
|
+
tryConsume(): boolean;
|
|
317
|
+
private refill;
|
|
318
|
+
}
|
|
319
|
+
export declare class NoopWebSocketTelemetryController implements WebSocketTelemetryController {
|
|
320
|
+
emit(_input: WebSocketTelemetryEventInput): void;
|
|
321
|
+
recordMetric(_input: WebSocketMetricInput): void;
|
|
322
|
+
recordSpan(_input: WebSocketSpanInput): void;
|
|
323
|
+
getMetricsSnapshot(): WebSocketTelemetryMetricsSnapshot;
|
|
324
|
+
getEventStore(): WebSocketTelemetryEventStore | undefined;
|
|
325
|
+
getMetricStore(): WebSocketTelemetryMetricStore | undefined;
|
|
326
|
+
getSpanStore(): WebSocketTelemetrySpanStore | undefined;
|
|
327
|
+
registerMetricSource(_source: WebSocketTelemetryMetricSource): () => void;
|
|
328
|
+
createConnectionContext(_request?: {
|
|
329
|
+
headers?: Readonly<Record<string, string | string[] | undefined>>;
|
|
330
|
+
}): WebSocketTelemetryConnectionContext;
|
|
331
|
+
getTraceOptions(): WebSocketTelemetryTraceOptions;
|
|
332
|
+
shutdown(_options?: {
|
|
333
|
+
timeoutMs?: number;
|
|
334
|
+
}): Promise<void>;
|
|
335
|
+
}
|
|
336
|
+
type RuntimeMetadata = {
|
|
337
|
+
runtimeId: string;
|
|
338
|
+
nodeId: string;
|
|
339
|
+
};
|
|
340
|
+
type ResolvedEventPipelineOptions = {
|
|
341
|
+
sinks: WebSocketTelemetryEventSink[];
|
|
342
|
+
store: WebSocketTelemetryEventStore | undefined;
|
|
343
|
+
maxRecordsPerSecond: number;
|
|
344
|
+
maxInFlightEmits: number;
|
|
345
|
+
sharedRedactor: WebSocketTelemetryRedactor | undefined;
|
|
346
|
+
signalRedactor: WebSocketTelemetryEventRedactor | undefined;
|
|
347
|
+
sharedBeforeRecord: WebSocketTelemetryBeforeRecord | undefined;
|
|
348
|
+
signalBeforeRecord: WebSocketTelemetryEventBeforeRecord | undefined;
|
|
349
|
+
sampling: {
|
|
350
|
+
defaultRate: number;
|
|
351
|
+
rateByEvent: Record<string, number>;
|
|
352
|
+
alwaysRecordLevels: Array<"warn" | "error">;
|
|
353
|
+
};
|
|
354
|
+
capturePayload: false | "preview";
|
|
355
|
+
maxPayloadPreviewBytes: number;
|
|
356
|
+
};
|
|
357
|
+
type ResolvedMetricPipelineOptions = {
|
|
358
|
+
sinks: WebSocketTelemetryMetricSink[];
|
|
359
|
+
store: WebSocketTelemetryMetricStore | undefined;
|
|
360
|
+
maxRecordsPerSecond: number;
|
|
361
|
+
maxInFlightEmits: number;
|
|
362
|
+
sharedRedactor: WebSocketTelemetryRedactor | undefined;
|
|
363
|
+
signalRedactor: WebSocketTelemetryMetricRedactor | undefined;
|
|
364
|
+
sharedBeforeRecord: WebSocketTelemetryBeforeRecord | undefined;
|
|
365
|
+
signalBeforeRecord: WebSocketTelemetryMetricBeforeRecord | undefined;
|
|
366
|
+
collectionEnabled: boolean;
|
|
367
|
+
sampleIntervalMs: number;
|
|
368
|
+
};
|
|
369
|
+
type ResolvedSpanPipelineOptions = {
|
|
370
|
+
sinks: WebSocketTelemetrySpanSink[];
|
|
371
|
+
store: WebSocketTelemetrySpanStore | undefined;
|
|
372
|
+
maxRecordsPerSecond: number;
|
|
373
|
+
maxInFlightEmits: number;
|
|
374
|
+
sharedRedactor: WebSocketTelemetryRedactor | undefined;
|
|
375
|
+
signalRedactor: WebSocketTelemetrySpanRedactor | undefined;
|
|
376
|
+
sharedBeforeRecord: WebSocketTelemetryBeforeRecord | undefined;
|
|
377
|
+
signalBeforeRecord: WebSocketTelemetrySpanBeforeRecord | undefined;
|
|
378
|
+
sampling: {
|
|
379
|
+
defaultRate: number;
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
type InternalEventReporter = (name: string, level: WebSocketTelemetryEventRecord["level"], detail?: Record<string, unknown>) => void;
|
|
383
|
+
declare abstract class TelemetryPipeline<TRecord extends WebSocketTelemetryRecord, TInput, TSink extends {
|
|
384
|
+
emit(record: TRecord): void | Promise<void>;
|
|
385
|
+
shutdown?(options?: {
|
|
386
|
+
timeoutMs?: number;
|
|
387
|
+
}): void | Promise<void>;
|
|
388
|
+
}, TStore extends {
|
|
389
|
+
readonly sink: TSink;
|
|
390
|
+
clear(): void;
|
|
391
|
+
} | undefined> {
|
|
392
|
+
abstract readonly signal: "event" | "metric" | "span";
|
|
393
|
+
protected readonly sinks: TSink[];
|
|
394
|
+
protected readonly _store: TStore;
|
|
395
|
+
protected readonly tokenBucket: TokenBucket;
|
|
396
|
+
protected readonly maxInFlightEmits: number;
|
|
397
|
+
protected readonly runtimeMetadata: RuntimeMetadata;
|
|
398
|
+
protected readonly sharedRedactor: WebSocketTelemetryRedactor | undefined;
|
|
399
|
+
protected readonly sharedBeforeRecord: WebSocketTelemetryBeforeRecord | undefined;
|
|
400
|
+
protected internalEventReporter: InternalEventReporter | undefined;
|
|
401
|
+
private readonly inFlightEmits;
|
|
402
|
+
droppedCount: number;
|
|
403
|
+
sinkFailureCount: number;
|
|
404
|
+
shutdownCalled: boolean;
|
|
405
|
+
protected constructor(sinks: TSink[], store: TStore, maxRecordsPerSecond: number, maxInFlightEmits: number, sharedRedactor: WebSocketTelemetryRedactor | undefined, sharedBeforeRecord: WebSocketTelemetryBeforeRecord | undefined, runtimeMetadata: RuntimeMetadata);
|
|
406
|
+
get store(): TStore;
|
|
407
|
+
setInternalEventReporter(reporter: InternalEventReporter): void;
|
|
408
|
+
abstract emit(input: TInput): void;
|
|
409
|
+
protected abstract buildRecord(input: TInput): TRecord;
|
|
410
|
+
protected abstract shouldBypassRateLimit(record: TRecord): boolean;
|
|
411
|
+
protected abstract isCriticalRecord(record: TRecord): boolean;
|
|
412
|
+
protected abstract getSignalRedactor(): ((record: TRecord) => TRecord | null) | undefined;
|
|
413
|
+
protected abstract getSignalBeforeRecord(): ((record: TRecord) => TRecord | null) | undefined;
|
|
414
|
+
protected emitInternal(input: TInput): void;
|
|
415
|
+
private applyTransform;
|
|
416
|
+
protected dispatchToSinks(record: TRecord, selfObserveFailures?: boolean): void;
|
|
417
|
+
private decrementInFlightEmit;
|
|
418
|
+
private observeSinkFailure;
|
|
419
|
+
protected dispatchInternalEvent(name: string, level: WebSocketTelemetryEventRecord["level"], detail?: Record<string, unknown>): void;
|
|
420
|
+
shutdown(timeoutMs: number): Promise<void>;
|
|
421
|
+
private shutdownSink;
|
|
422
|
+
}
|
|
423
|
+
declare class EventPipeline extends TelemetryPipeline<WebSocketTelemetryEventRecord, WebSocketTelemetryEventInput, WebSocketTelemetryEventSink, WebSocketTelemetryEventStore | undefined> {
|
|
424
|
+
readonly signal: "event";
|
|
425
|
+
protected readonly signalRedactor: WebSocketTelemetryEventRedactor | undefined;
|
|
426
|
+
protected readonly signalBeforeRecord: WebSocketTelemetryEventBeforeRecord | undefined;
|
|
427
|
+
protected readonly sampling: {
|
|
428
|
+
defaultRate: number;
|
|
429
|
+
rateByEvent: Record<string, number>;
|
|
430
|
+
alwaysRecordLevels: Array<"warn" | "error">;
|
|
431
|
+
};
|
|
432
|
+
protected readonly capturePayload: false | "preview";
|
|
433
|
+
protected readonly maxPayloadPreviewBytes: number;
|
|
434
|
+
private currentEmitAlwaysRecord;
|
|
435
|
+
constructor(options: ResolvedEventPipelineOptions, runtimeMetadata: RuntimeMetadata);
|
|
436
|
+
emit(input: WebSocketTelemetryEventInput): void;
|
|
437
|
+
dispatchInternalDiagnosticEvent(name: string, level: WebSocketTelemetryEventRecord["level"], detail?: Record<string, unknown>): void;
|
|
438
|
+
protected buildRecord(input: WebSocketTelemetryEventInput): WebSocketTelemetryEventRecord;
|
|
439
|
+
protected shouldBypassRateLimit(_record: WebSocketTelemetryEventRecord): boolean;
|
|
440
|
+
protected isCriticalRecord(record: WebSocketTelemetryEventRecord): boolean;
|
|
441
|
+
protected getSignalRedactor(): ((record: WebSocketTelemetryEventRecord) => WebSocketTelemetryEventRecord | null) | undefined;
|
|
442
|
+
protected getSignalBeforeRecord(): ((record: WebSocketTelemetryEventRecord) => WebSocketTelemetryEventRecord | null) | undefined;
|
|
443
|
+
}
|
|
444
|
+
declare class MetricPipeline extends TelemetryPipeline<WebSocketTelemetryMetricRecord, WebSocketMetricInput, WebSocketTelemetryMetricSink, WebSocketTelemetryMetricStore | undefined> {
|
|
445
|
+
readonly signal: "metric";
|
|
446
|
+
protected readonly signalRedactor: WebSocketTelemetryMetricRedactor | undefined;
|
|
447
|
+
protected readonly signalBeforeRecord: WebSocketTelemetryMetricBeforeRecord | undefined;
|
|
448
|
+
protected readonly metricSources: Set<WebSocketTelemetryMetricSource>;
|
|
449
|
+
protected readonly collectionEnabled: boolean;
|
|
450
|
+
protected readonly sampleIntervalMs: number;
|
|
451
|
+
protected collectionInterval: ReturnType<typeof setInterval> | null;
|
|
452
|
+
protected snapshotProvider: (() => WebSocketTelemetryMetricsSnapshot) | undefined;
|
|
453
|
+
constructor(options: ResolvedMetricPipelineOptions, runtimeMetadata: RuntimeMetadata);
|
|
454
|
+
emit(input: WebSocketMetricInput): void;
|
|
455
|
+
protected buildRecord(input: WebSocketMetricInput): WebSocketTelemetryMetricRecord;
|
|
456
|
+
protected shouldBypassRateLimit(record: WebSocketTelemetryMetricRecord): boolean;
|
|
457
|
+
protected isCriticalRecord(record: WebSocketTelemetryMetricRecord): boolean;
|
|
458
|
+
protected getSignalRedactor(): ((record: WebSocketTelemetryMetricRecord) => WebSocketTelemetryMetricRecord | null) | undefined;
|
|
459
|
+
protected getSignalBeforeRecord(): ((record: WebSocketTelemetryMetricRecord) => WebSocketTelemetryMetricRecord | null) | undefined;
|
|
460
|
+
registerMetricSource(source: WebSocketTelemetryMetricSource): () => void;
|
|
461
|
+
setSnapshotProvider(provider: () => WebSocketTelemetryMetricsSnapshot): void;
|
|
462
|
+
getSnapshot(): WebSocketTelemetryMetricsSnapshot;
|
|
463
|
+
collectAndEmit(): void;
|
|
464
|
+
shutdown(timeoutMs: number): Promise<void>;
|
|
465
|
+
}
|
|
466
|
+
declare class SpanPipeline extends TelemetryPipeline<WebSocketTelemetrySpanRecord, WebSocketSpanInput, WebSocketTelemetrySpanSink, WebSocketTelemetrySpanStore | undefined> {
|
|
467
|
+
readonly signal: "span";
|
|
468
|
+
protected readonly signalRedactor: WebSocketTelemetrySpanRedactor | undefined;
|
|
469
|
+
protected readonly signalBeforeRecord: WebSocketTelemetrySpanBeforeRecord | undefined;
|
|
470
|
+
protected readonly sampling: {
|
|
471
|
+
defaultRate: number;
|
|
472
|
+
};
|
|
473
|
+
constructor(options: ResolvedSpanPipelineOptions, runtimeMetadata: RuntimeMetadata);
|
|
474
|
+
emit(input: WebSocketSpanInput): void;
|
|
475
|
+
protected buildRecord(input: WebSocketSpanInput): WebSocketTelemetrySpanRecord;
|
|
476
|
+
protected shouldBypassRateLimit(record: WebSocketTelemetrySpanRecord): boolean;
|
|
477
|
+
protected isCriticalRecord(record: WebSocketTelemetrySpanRecord): boolean;
|
|
478
|
+
protected getSignalRedactor(): ((record: WebSocketTelemetrySpanRecord) => WebSocketTelemetrySpanRecord | null) | undefined;
|
|
479
|
+
protected getSignalBeforeRecord(): ((record: WebSocketTelemetrySpanRecord) => WebSocketTelemetrySpanRecord | null) | undefined;
|
|
480
|
+
}
|
|
481
|
+
export declare class WebSocketTelemetryControllerImpl implements WebSocketTelemetryController {
|
|
482
|
+
protected readonly events: EventPipeline;
|
|
483
|
+
protected readonly metrics: MetricPipeline;
|
|
484
|
+
protected readonly spans: SpanPipeline;
|
|
485
|
+
protected readonly runtimeId: string;
|
|
486
|
+
protected readonly nodeId: string;
|
|
487
|
+
protected readonly traceOptions: WebSocketTelemetryTraceOptions;
|
|
488
|
+
protected readonly shutdownTimeoutMs: number;
|
|
489
|
+
protected shutdownCalled: boolean;
|
|
490
|
+
constructor(events: EventPipeline, metrics: MetricPipeline, spans: SpanPipeline, traceOptions: WebSocketTelemetryTraceOptions, runtimeMetadata: RuntimeMetadata, shutdownTimeoutMs: number);
|
|
491
|
+
emit(input: WebSocketTelemetryEventInput): void;
|
|
492
|
+
recordMetric(input: WebSocketMetricInput): void;
|
|
493
|
+
recordSpan(input: WebSocketSpanInput): void;
|
|
494
|
+
getMetricsSnapshot(): WebSocketTelemetryMetricsSnapshot;
|
|
495
|
+
getEventStore(): WebSocketTelemetryEventStore | undefined;
|
|
496
|
+
getMetricStore(): WebSocketTelemetryMetricStore | undefined;
|
|
497
|
+
getSpanStore(): WebSocketTelemetrySpanStore | undefined;
|
|
498
|
+
registerMetricSource(source: WebSocketTelemetryMetricSource): () => void;
|
|
499
|
+
createConnectionContext(request?: {
|
|
500
|
+
headers?: Readonly<Record<string, string | string[] | undefined>>;
|
|
501
|
+
}): WebSocketTelemetryConnectionContext;
|
|
502
|
+
getTraceOptions(): WebSocketTelemetryTraceOptions;
|
|
503
|
+
shutdown(options?: {
|
|
504
|
+
timeoutMs?: number;
|
|
505
|
+
}): Promise<void>;
|
|
506
|
+
}
|
|
507
|
+
export declare function createWebSocketTelemetryController(telemetryOption: boolean | WebSocketTelemetryOptions | undefined, runtimeMetadata: RuntimeMetadata): WebSocketTelemetryController;
|
|
508
|
+
export {};
|
|
509
|
+
//# sourceMappingURL=ws-telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-telemetry.d.ts","sourceRoot":"","sources":["../../src/stream/ws-telemetry.ts"],"names":[],"mappings":"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"}
|