diff --git a/server/config.json b/server/config.json index 256b1f3..2ab3bd4 100644 --- a/server/config.json +++ b/server/config.json @@ -42,21 +42,25 @@ { "name": "cpu high warning", "rule": "cpu>90", + "interval": 600, "callback": "https://yourSMSurl" }, { "name": "memory high warning", "rule": "(memory_used/memory_total)*100>90", + "interval": 600, "callback": "https://yourSMSurl" }, { "name": "ipv4 offline warning", "rule": "online4=0", + "interval": 1800, "callback": "https://yourSMSurl" }, { "name": "you can parse an expression combining any known field", "rule": "(hdd_used/hdd_total)*100>95", + "interval": 1800, "callback": "https://yourSMSurl" } ] diff --git a/server/src/main.cpp b/server/src/main.cpp index d0a1e22..02dcd75 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -311,7 +311,7 @@ void CMain::WatchdogMessage(int ClientNetID, double load_1, double load_5, doubl { int ClientID = ClientNetToClient(ClientNetID); time_t currentStamp = (long long)time(/*ago*/0); - if ((currentStamp-Client(ClientID)->m_AlarmLastTime) > 1800) + if ((currentStamp-Client(ClientID)->m_AlarmLastTime) > Watchdog(ID)->m_aInterval) { Client(ClientID)->m_AlarmLastTime = currentStamp; printf("node info: %s\n", Client(ClientID)->m_aUsername); @@ -517,6 +517,7 @@ int CMain::ReadConfig() str_copy(Watchdog(ID)->m_aName, jStart[i]["name"].u.string.ptr, sizeof(Watchdog(ID)->m_aName)); str_copy(Watchdog(ID)->m_aRule, jStart[i]["rule"].u.string.ptr, sizeof(Watchdog(ID)->m_aRule)); + Watchdog(ID)->m_aInterval = jStart[i]["interval"].u.integer; str_copy(Watchdog(ID)->m_aCallback, jStart[i]["callback"].u.string.ptr, sizeof(Watchdog(ID)->m_aCallback)); ID++; diff --git a/server/src/main.h b/server/src/main.h index 9055406..80df547 100644 --- a/server/src/main.h +++ b/server/src/main.h @@ -86,6 +86,7 @@ class CMain struct CWatchDog{ char m_aName[128]; char m_aRule[128]; + int m_aInterval; char m_aCallback[128]; } m_aCWatchDogs[NET_MAX_CLIENTS];