Review privacy-safe request telemetry

src/request-telemetry-types.tsTypeScript
@@ -0,0 +1,23 @@
1+export interface TelemetryRequest {
2+ method: string;
3+ path: string;
4+ routeTemplate?: string;
5+ queryString: string;
6+ headers: Readonly<Record<string, string | undefined>>;
7+}
8+
9+export interface TelemetryResponse {
10+ status: number;
11+}
12+
13+export type RequestHandler = () => Promise<TelemetryResponse>;
14+
15+export interface TelemetryLogger {
16+ info(fields: Readonly<Record<string, unknown>>): void;
17+ error(fields: Readonly<Record<string, unknown>>): void;
18+}
19+
20+export interface TelemetryOptions {
21+ sampleRate?: number;
22+ random?: () => number;
23+}