From a908cd2ab6f79e9c806ba985490e43fa1c7f438d Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 8 Oct 2022 07:00:27 +0200 Subject: [PATCH] feat: log package cache median ms (#18186) Co-authored-by: Jamie Magee <jamie.magee@gmail.com> --- lib/workers/repository/stats.spec.ts | 2 ++ lib/workers/repository/stats.ts | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/workers/repository/stats.spec.ts b/lib/workers/repository/stats.spec.ts index ff321b4206..0e31345331 100644 --- a/lib/workers/repository/stats.spec.ts +++ b/lib/workers/repository/stats.spec.ts @@ -133,11 +133,13 @@ describe('workers/repository/stats', () => { "avgMs": 40, "count": 4, "maxMs": 100, + "medianMs": 20, }, "set": { "avgMs": 70, "count": 3, "maxMs": 110, + "medianMs": 80, }, } `); diff --git a/lib/workers/repository/stats.ts b/lib/workers/repository/stats.ts index f6d2a584d4..dd95bb0b33 100644 --- a/lib/workers/repository/stats.ts +++ b/lib/workers/repository/stats.ts @@ -7,6 +7,7 @@ import type { RequestStats } from '../../util/http/types'; interface CacheStats { count: number; avgMs?: number; + medianMs?: number; maxMs?: number; } @@ -29,13 +30,23 @@ export function printRequestStats(): void { packageCacheStats.get.avgMs = Math.round( packageCacheGets.reduce((a, b) => a + b, 0) / packageCacheGets.length ); - packageCacheStats.get.maxMs = packageCacheGets[packageCacheGets.length - 1]; + if (packageCacheGets.length > 1) { + packageCacheStats.get.medianMs = + packageCacheGets[Math.round(packageCacheGets.length / 2) - 1]; + packageCacheStats.get.maxMs = + packageCacheGets[packageCacheGets.length - 1]; + } } if (packageCacheSets.length) { packageCacheStats.set.avgMs = Math.round( packageCacheSets.reduce((a, b) => a + b, 0) / packageCacheSets.length ); - packageCacheStats.set.maxMs = packageCacheSets[packageCacheSets.length - 1]; + if (packageCacheSets.length > 1) { + packageCacheStats.set.medianMs = + packageCacheSets[Math.round(packageCacheSets.length / 2) - 1]; + packageCacheStats.set.maxMs = + packageCacheSets[packageCacheSets.length - 1]; + } } logger.debug(packageCacheStats, 'Package cache statistics'); const httpRequests = memCache.get<RequestStats[]>('http-requests'); -- GitLab