From 3bd6ec5d28769b4502e40659ff8ba2b240fde159 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 17 Feb 2026 22:47:37 +0000 Subject: [PATCH] max response time --- server/src/db/models/MonitorStats.ts | 4 ++++ .../monitor-stats/MongoMonitorStatsRepository.ts | 1 + server/src/service/infrastructure/statusService.ts | 6 ++++++ server/src/types/monitorStats.ts | 1 + 4 files changed, 12 insertions(+) diff --git a/server/src/db/models/MonitorStats.ts b/server/src/db/models/MonitorStats.ts index d1d49ca9f..fda5ccbd5 100755 --- a/server/src/db/models/MonitorStats.ts +++ b/server/src/db/models/MonitorStats.ts @@ -24,6 +24,10 @@ const MonitorStatsSchema = new Schema( type: Number, default: 0, }, + maxResponseTime: { + type: Number, + default: 0, + }, totalChecks: { type: Number, default: 0, diff --git a/server/src/repositories/monitor-stats/MongoMonitorStatsRepository.ts b/server/src/repositories/monitor-stats/MongoMonitorStatsRepository.ts index 0a4905fc1..39c837ac8 100644 --- a/server/src/repositories/monitor-stats/MongoMonitorStatsRepository.ts +++ b/server/src/repositories/monitor-stats/MongoMonitorStatsRepository.ts @@ -20,6 +20,7 @@ class MongoMonitorStatsRepository implements IMonitorStatsRepository { id: toStringId(doc._id), monitorId: toStringId(doc.monitorId), avgResponseTime: doc.avgResponseTime, + maxResponseTime: doc.maxResponseTime, totalChecks: doc.totalChecks, totalUpChecks: doc.totalUpChecks, totalDownChecks: doc.totalDownChecks, diff --git a/server/src/service/infrastructure/statusService.ts b/server/src/service/infrastructure/statusService.ts index ad112df21..8077e68b2 100755 --- a/server/src/service/infrastructure/statusService.ts +++ b/server/src/service/infrastructure/statusService.ts @@ -68,6 +68,7 @@ export class StatusService implements IStatusService { stats = { monitorId, avgResponseTime: 0, + maxResponseTime: 0, totalChecks: 0, totalUpChecks: 0, totalDownChecks: 0, @@ -82,6 +83,11 @@ export class StatusService implements IStatusService { // Last response time stats.lastResponseTime = responseTime ?? 0; + // Max response time + if (responseTime && responseTime > stats.maxResponseTime) { + stats.maxResponseTime = responseTime; + } + // Avg response time: let avgResponseTime = stats.avgResponseTime; if (typeof responseTime !== "undefined" && responseTime !== null) { diff --git a/server/src/types/monitorStats.ts b/server/src/types/monitorStats.ts index 8f9603529..97c3cb28c 100644 --- a/server/src/types/monitorStats.ts +++ b/server/src/types/monitorStats.ts @@ -2,6 +2,7 @@ export interface MonitorStats { id: string; monitorId: string; avgResponseTime: number; + maxResponseTime: number; totalChecks: number; totalUpChecks: number; totalDownChecks: number;