fix(metrics): fix metrics

This commit is contained in:
Juergen Kunz
2025-06-23 15:42:04 +00:00
parent 4587940f38
commit 3857d2670f
2 changed files with 49 additions and 14 deletions

View File

@ -65,24 +65,18 @@ export class ThroughputTracker {
return { in: 0, out: 0 };
}
// Sum bytes in the window
// Calculate total bytes in window
const totalBytesIn = relevantSamples.reduce((sum, s) => sum + s.bytesIn, 0);
const totalBytesOut = relevantSamples.reduce((sum, s) => sum + s.bytesOut, 0);
// Calculate actual window duration (might be less than requested if not enough data)
const actualWindowSeconds = Math.min(
windowSeconds,
(now - relevantSamples[0].timestamp) / 1000
);
// Avoid division by zero
if (actualWindowSeconds === 0) {
return { in: 0, out: 0 };
}
// Use actual number of seconds covered by samples for accurate rate
const oldestSampleTime = relevantSamples[0].timestamp;
const newestSampleTime = relevantSamples[relevantSamples.length - 1].timestamp;
const actualSeconds = Math.max(1, (newestSampleTime - oldestSampleTime) / 1000 + 1);
return {
in: Math.round(totalBytesIn / actualWindowSeconds),
out: Math.round(totalBytesOut / actualWindowSeconds)
in: Math.round(totalBytesIn / actualSeconds),
out: Math.round(totalBytesOut / actualSeconds)
};
}