From c12b87ed03e7f4c91e093ebeece788b15fad64b5 Mon Sep 17 00:00:00 2001 From: Abhi <43648792+abhipatel12@users.noreply.github.com> Date: Tue, 23 Sep 2025 17:29:12 -0400 Subject: [PATCH] fix(routing): Round latency to integer for telemetry (#9242) --- .../core/src/routing/strategies/compositeStrategy.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/core/src/routing/strategies/compositeStrategy.ts b/packages/core/src/routing/strategies/compositeStrategy.ts index 42646fc4e3..6aadc439da 100644 --- a/packages/core/src/routing/strategies/compositeStrategy.ts +++ b/packages/core/src/routing/strategies/compositeStrategy.ts @@ -92,17 +92,18 @@ export class CompositeStrategy implements TerminalStrategy { startTime: number, ): RoutingDecision { const endTime = performance.now(); - const totalLatency = endTime - startTime; - - // Combine the source paths: composite_name/child_source (e.g. 'router/default') const compositeSource = `${this.name}/${decision.metadata.source}`; + // Use the child's latency if it's a meaningful (non-zero) value, + // otherwise use the total time spent in the composite strategy. + const latency = decision.metadata.latencyMs || endTime - startTime; + return { ...decision, metadata: { ...decision.metadata, source: compositeSource, - latencyMs: decision.metadata.latencyMs || totalLatency, + latencyMs: Math.round(latency), // Round to ensure int for telemetry. }, }; }