diff --git a/Client/src/Components/Charts/MonitorDetailsAreaChart/index.jsx b/Client/src/Components/Charts/MonitorDetailsAreaChart/index.jsx
index 985b5b846..39aa8dcbf 100644
--- a/Client/src/Components/Charts/MonitorDetailsAreaChart/index.jsx
+++ b/Client/src/Components/Charts/MonitorDetailsAreaChart/index.jsx
@@ -47,7 +47,7 @@ const MonitorDetailsAreaChart = ({ checks, filter }) => {
});
};
- const filterChecks = (checks, filter) => {
+ const filterChecks = (checks, filter, numToDisplay) => {
const limits = {
day: 24 * 60 * 60 * 1000,
week: 24 * 60 * 60 * 1000 * 7,
@@ -55,20 +55,29 @@ const MonitorDetailsAreaChart = ({ checks, filter }) => {
};
const now = new Date().getTime();
- const result = [];
+ let result = [];
for (let i = 0; i < checks.length; i++) {
const checkTime = new Date(checks[i].createdAt).getTime();
if (now - checkTime < limits[filter]) {
result.push(checks[i]);
}
}
+
+ // If more than numToDisplay checks, pick every nth check
+ if (result.length > numToDisplay) {
+ const n = Math.ceil(result.length / numToDisplay);
+ result = result.filter((_, idx) => {
+ return idx % n === 0;
+ });
+ }
+
return result;
};
let normalizedChecks = [];
if (checks && checks.length > 0) {
- const filteredChecks = filterChecks(checks, filter);
- normalizedChecks = NormalizeData(filteredChecks, 33, 100);
+ const filteredChecks = filterChecks(checks, filter, 75);
+ normalizedChecks = NormalizeData(filteredChecks, 10, 100);
}
return (
diff --git a/Client/src/Pages/Monitors/index.jsx b/Client/src/Pages/Monitors/index.jsx
index 3c1d7bc64..71a5eccd6 100644
--- a/Client/src/Pages/Monitors/index.jsx
+++ b/Client/src/Pages/Monitors/index.jsx
@@ -294,10 +294,10 @@ const Monitors = () => {
}}
>
- Really delete this monitor?
+ Do you really want to delete this monitor?
- Once deleted, this monitor cannot be retrieved back.
+ Once deleted, this monitor cannot be retrieved.
0) {
+ // Only send email if monitor status has changed
+ if (monitor.status !== this.status) {
+ const emailService = new EmailService();
+
+ if (monitor.status === true && this.status === false) {
+ // Notify users that the monitor is down
+ for (const notification of notifications) {
+ if (notification.type === "email") {
+ await emailService.buildAndSendEmail(
+ "serverIsDownTemplate",
+ { monitorName: monitor.name, monitorUrl: monitor.url },
+ notification.address,
+ `Monitor ${monitor.name} is down`
+ );
+ }
+ }
+ }
+
+ if (monitor.status === false && this.status === true) {
+ // Notify users that the monitor is up
+ for (const notification of notifications) {
+ if (notification.type === "email") {
+ await emailService.buildAndSendEmail(
+ "serverIsUpTemplate",
+ { monitorName: monitor.name, monitorUrl: monitor.url },
+ notification.address,
+ `Monitor ${monitor.name} is back up`
+ );
+ }
+ }
+ }
+
+ // Update monitor status
+ monitor.status = this.status;
+ await monitor.save();
+ }
}
- monitor.status = this.status;
- await monitor.save();
}
} catch (error) {
console.log(error);
@@ -60,4 +128,5 @@ CheckSchema.pre("save", async function (next) {
}
});
+
module.exports = mongoose.model("Check", CheckSchema);
diff --git a/Server/routes/checkRoute.js b/Server/routes/checkRoute.js
index 6569dd49a..0216343c8 100644
--- a/Server/routes/checkRoute.js
+++ b/Server/routes/checkRoute.js
@@ -21,4 +21,4 @@ router.post(
checkController.deleteChecks
);
-module.exports = router;
+module.exports = router;
\ No newline at end of file
diff --git a/Server/routes/pageSpeedCheckRoute.js b/Server/routes/pageSpeedCheckRoute.js
index 34ec0e544..4b1de49bc 100644
--- a/Server/routes/pageSpeedCheckRoute.js
+++ b/Server/routes/pageSpeedCheckRoute.js
@@ -1,7 +1,7 @@
const router = require("express").Router();
const { verifyOwnership } = require("../middleware/verifyOwnership");
const Monitor = require("../models/Monitor");
-const checkController = require("../controllers/pageSpeedCheckController");
+const pageSpeedCheckController = require("../controllers/pageSpeedCheckController");
/**
* @route POST /:monitorId
@@ -13,7 +13,7 @@ const checkController = require("../controllers/pageSpeedCheckController");
router.post(
"/:monitorId",
verifyOwnership(Monitor, "monitorId"),
- checkController.createPageSpeedCheck
+ pageSpeedCheckController.createPageSpeedCheck
);
/**
@@ -26,7 +26,7 @@ router.post(
router.get(
"/:monitorId",
verifyOwnership(Monitor, "monitorId"),
- checkController.getPageSpeedChecks
+ pageSpeedCheckController.getPageSpeedChecks
);
/**
@@ -39,8 +39,7 @@ router.get(
router.delete(
"/:monitorId",
verifyOwnership(Monitor, "monitorId"),
- checkController.deletePageSpeedCheck
+ pageSpeedCheckController.deletePageSpeedCheck
);
module.exports = router;
-