feat(alerts): enhance alert settings with customizable durations for server offline and resource usage notifications
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m59s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m59s
This commit is contained in:
@@ -11,11 +11,11 @@ const { getUptimeCacheData } = require('./mikrotikConfigRoutes');
|
||||
|
||||
/** Значения по умолчанию для настроек оповещений. */
|
||||
const DEFAULT_ALERT_SETTINGS = {
|
||||
serverOffline: { enabled: true },
|
||||
mikrotikUnreachable: { enabled: true },
|
||||
highCpu: { enabled: true, thresholdPercent: 85 },
|
||||
highRam: { enabled: true, thresholdPercent: 85 },
|
||||
highHdd: { enabled: true, thresholdPercent: 90 },
|
||||
serverOffline: { enabled: true, offlineMinutes: 5 },
|
||||
mikrotikUnreachable: { enabled: true, durationMinutes: 5 },
|
||||
highCpu: { enabled: true, thresholdPercent: 85, durationMinutes: 10 },
|
||||
highRam: { enabled: true, thresholdPercent: 85, durationMinutes: 10 },
|
||||
highHdd: { enabled: true, thresholdPercent: 90, durationMinutes: 10 },
|
||||
};
|
||||
|
||||
function getAlertSettings(uiSettings) {
|
||||
@@ -64,9 +64,11 @@ async function getAlerts(req, res) {
|
||||
|
||||
if (isRouter) {
|
||||
const entry = uptimeResults[serverId];
|
||||
offline = entry ? entry.ok === false : false;
|
||||
const offlineMinutes = Math.max(1, Math.min(1440, Number(settings.serverOffline.offlineMinutes) || 5));
|
||||
const offlineSinceMs = entry && entry.lastCheckTs ? (Date.now() - entry.lastCheckTs) : 0;
|
||||
offline = entry && entry.ok === false && offlineSinceMs >= offlineMinutes * 60 * 1000;
|
||||
description = offline
|
||||
? `${name} недоступен (по проверке Uptime Monitor).`
|
||||
? `${name} недоступен более ${offlineMinutes} мин (по проверке Uptime Monitor).`
|
||||
: '';
|
||||
} else {
|
||||
const idx = nonRouterServers.findIndex(
|
||||
|
||||
Reference in New Issue
Block a user