From cdc77305e5ac9859dadc75b1fcdeca6a4ebb3bc1 Mon Sep 17 00:00:00 2001 From: Juergen Kunz Date: Mon, 13 Apr 2026 19:15:46 +0000 Subject: [PATCH] fix(monitoring): stop allocating route metrics to domains when no request data exists --- changelog.md | 6 ++++++ ts/00_commitinfo_data.ts | 2 +- ts/monitoring/classes.metricsmanager.ts | 15 +-------------- ts_web/00_commitinfo_data.ts | 2 +- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/changelog.md b/changelog.md index 0c35545..83218f0 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +## 2026-04-13 - 13.17.1 - fix(monitoring) +stop allocating route metrics to domains when no request data exists + +- Removes the equal-split fallback for shared routes in MetricsManager. +- Sets the proportional share to zero when a route has no recorded requests, avoiding inflated per-domain connection and throughput totals. + ## 2026-04-13 - 13.17.0 - feat(monitoring,network-ui,routes) add request-based domain activity metrics and split routes into user and system views diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 2673fe3..023149a 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/dcrouter', - version: '13.17.0', + version: '13.17.1', description: 'A multifaceted routing service handling mail and SMS delivery functions.' } diff --git a/ts/monitoring/classes.metricsmanager.ts b/ts/monitoring/classes.metricsmanager.ts index a3ab69b..d3bce36 100644 --- a/ts/monitoring/classes.metricsmanager.ts +++ b/ts/monitoring/classes.metricsmanager.ts @@ -806,20 +806,7 @@ export class MetricsManager { const tp = throughputByRoute.get(routeName) || { in: 0, out: 0 }; const routeTotal = routeTotalRequests.get(routeName) || 0; - // Proportional share based on actual request counts - // Fall back to equal split only when no request data exists - let share: number; - if (routeTotal > 0 && domainReqs > 0) { - share = domainReqs / routeTotal; - } else { - // Count how many resolved domains share this route - let domainsInRoute = 0; - for (const [, routes] of domainToRoutes) { - if (routes.includes(routeName)) domainsInRoute++; - } - share = 1 / Math.max(domainsInRoute, 1); - } - + const share = routeTotal > 0 ? domainReqs / routeTotal : 0; totalConns += conns * share; totalIn += tp.in * share; totalOut += tp.out * share; diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 2673fe3..023149a 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@serve.zone/dcrouter', - version: '13.17.0', + version: '13.17.1', description: 'A multifaceted routing service handling mail and SMS delivery functions.' }