From 652d2317714051981ccc2210ba4027642711974f Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Sat, 30 Aug 2025 16:07:03 -0700 Subject: [PATCH 1/2] add migration for statusWindowThreshold --- server/src/db/mongo/MongoDB.js | 4 +++- .../0001_migrateStatusWindowThreshold.js | 18 ++++++++++++++++++ server/src/db/mongo/migration/index.js | 7 +++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 server/src/db/mongo/migration/0001_migrateStatusWindowThreshold.js create mode 100644 server/src/db/mongo/migration/index.js diff --git a/server/src/db/mongo/MongoDB.js b/server/src/db/mongo/MongoDB.js index 0c6274320..74fcbd89f 100755 --- a/server/src/db/mongo/MongoDB.js +++ b/server/src/db/mongo/MongoDB.js @@ -1,6 +1,6 @@ import mongoose from "mongoose"; import AppSettings from "../models/AppSettings.js"; - +import { runMigrations } from "./migration/index.js"; class MongoDB { static SERVICE_NAME = "MongoDB"; @@ -65,6 +65,8 @@ class MongoDB { service: this.SERVICE_NAME, method: "connect", }); + + await runMigrations(); } catch (error) { this.logger.error({ message: error.message, diff --git a/server/src/db/mongo/migration/0001_migrateStatusWindowThreshold.js b/server/src/db/mongo/migration/0001_migrateStatusWindowThreshold.js new file mode 100644 index 000000000..8f6988de4 --- /dev/null +++ b/server/src/db/mongo/migration/0001_migrateStatusWindowThreshold.js @@ -0,0 +1,18 @@ +import Monitor from "../../models/Monitor.js"; +async function migrateStatusWindowThreshold() { + try { + const monitors = await Monitor.find({ statusWindowThreshold: { $lt: 1 } }); + for (const monitor of monitors) { + monitor.statusWindowThreshold = monitor.statusWindowThreshold * 100; + await monitor.save(); + console.log(`Migrated monitor ${monitor._id}: statusWindowThreshold set to ${monitor.statusWindowThreshold}`); + } + console.log("StatusWindowThreshold migration complete."); + return true; + } catch (err) { + console.error("Migration error:", err); + return false; + } +} + +export { migrateStatusWindowThreshold }; diff --git a/server/src/db/mongo/migration/index.js b/server/src/db/mongo/migration/index.js new file mode 100644 index 000000000..4bf56895a --- /dev/null +++ b/server/src/db/mongo/migration/index.js @@ -0,0 +1,7 @@ +import { migrateStatusWindowThreshold } from "./0001_migrateStatusWindowThreshold.js"; + +const runMigrations = async () => { + await migrateStatusWindowThreshold(); +}; + +export { runMigrations }; From f8a0741e6cf9ec321fbccbb017be505ef18b2f5a Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Sat, 30 Aug 2025 16:19:17 -0700 Subject: [PATCH 2/2] <= -> < --- server/src/service/infrastructure/statusService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/service/infrastructure/statusService.js b/server/src/service/infrastructure/statusService.js index 643c77028..72fa359d7 100755 --- a/server/src/service/infrastructure/statusService.js +++ b/server/src/service/infrastructure/statusService.js @@ -158,7 +158,7 @@ class StatusService { statusChanged = true; } // If the failure rate is below the threshold and the monitor is down, recover: - else if (failureRate <= monitor.statusWindowThreshold && monitor.status === false) { + else if (failureRate < monitor.statusWindowThreshold && monitor.status === false) { newStatus = true; statusChanged = true; }