complete performance and reliability follow-ups

This commit is contained in:
2026-08-09 23:04:36 +05:30
parent 8f19a5eb2b
commit 232d8e6734
31 changed files with 525 additions and 726 deletions
+4 -1
View File
@@ -1,4 +1,5 @@
import { createTracer, type Context, type Middleware } from "@wrnexus/core";
import { reportObservabilityFailure, type ObservabilityDiagnostic } from "./diagnostics.ts";
export interface TraceContext {
version: "00";
@@ -63,6 +64,7 @@ export interface TraceMiddlewareOptions {
routeName?: (ctx: Context) => string;
serverTiming?: boolean;
onExportError?: (error: unknown, span: SpanRecord) => void | Promise<void>;
diagnostic?: ObservabilityDiagnostic;
}
export function traceMiddleware(options: TraceMiddlewareOptions = {}): Middleware {
@@ -131,7 +133,8 @@ export function traceMiddleware(options: TraceMiddlewareOptions = {}): Middlewar
await options.onSpan?.(span);
await options.exporter?.export([span]);
} catch (error) {
await options.onExportError?.(error, span);
if (options.onExportError) await options.onExportError(error, span);
else reportObservabilityFailure("trace export failed", error, options.diagnostic);
}
}
}