From 7d2a73bf2e7922139e1aa7e47fb7f9520a7aa990 Mon Sep 17 00:00:00 2001
From: cppla <i@cpp.la>
Date: Mon, 9 Sep 2024 18:55:11 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=88=E6=B5=81=E9=87=8F?=
 =?UTF-8?q?=E7=9B=91=E6=8E=A7=E7=9A=84bug=EF=BC=8C=E6=9C=88=E6=B5=81?=
 =?UTF-8?q?=E9=87=8F=E5=8A=A0=E5=85=A5=E8=A1=A8=E8=BE=BE=E5=BC=8F=E8=AE=A1?=
 =?UTF-8?q?=E7=AE=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 README.md           | 6 ++++++
 server/src/main.cpp | 7 +++++--
 server/src/main.h   | 4 ++--
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 40f8b5c..c8c5af4 100644
--- a/README.md
+++ b/README.md
@@ -132,6 +132,12 @@ cd ServerStatus/server && make
 			"interval": 3600,
 			"callback": "https://yourSMSurl"
 		},
+		{
+			"name": "乌兰察布服务器流量18GB告警",
+			"rule": "(network_out-last_network_out)/1024/1024/1024>18&(username='wlcb1'|username='wlcb2'|username='wlcb3'|username='wlcb4')",
+			"interval": 3600,
+			"callback": "https://yourSMSurl"
+		},
 		{
 			"name": "你可以组合任何已知字段的表达式",
 			"rule": "(hdd_used/hdd_total)*100>95",
diff --git a/server/src/main.cpp b/server/src/main.cpp
index cc239e4..936b13f 100644
--- a/server/src/main.cpp
+++ b/server/src/main.cpp
@@ -216,7 +216,8 @@ int CMain::HandleMessage(int ClientNetID, char *pMessage)
                         pClient->m_Stats.m_time_10010, pClient->m_Stats.m_time_189, pClient->m_Stats.m_time_10086,
                         pClient->m_Stats.m_tcpCount, pClient->m_Stats.m_udpCount, pClient->m_Stats.m_processCount,
                         pClient->m_Stats.m_threadCount, pClient->m_Stats.m_NetworkRx, pClient->m_Stats.m_NetworkTx,
-                        pClient->m_Stats.m_NetworkIN, pClient->m_Stats.m_NetworkOUT,pClient->m_Stats.m_MemTotal,
+                        pClient->m_Stats.m_NetworkIN, pClient->m_Stats.m_NetworkOUT,
+                        pClient->m_LastNetworkIN, pClient->m_LastNetworkOUT, pClient->m_Stats.m_MemTotal,
                         pClient->m_Stats.m_MemUsed, pClient->m_Stats.m_SwapTotal, pClient->m_Stats.m_SwapUsed,
                         pClient->m_Stats.m_HDDTotal, pClient->m_Stats.m_HDDUsed, pClient->m_Stats.m_IORead,
                         pClient->m_Stats.m_IOWrite, pClient->m_Stats.m_CPU, pClient->m_Stats.m_Online4,
@@ -268,7 +269,7 @@ int CMain::HandleMessage(int ClientNetID, char *pMessage)
 
 void CMain::WatchdogMessage(int ClientNetID, double load_1, double load_5, double load_15, double ping_10010, double ping_189, double ping_10086,
                             double time_10010, double time_189, double time_10086, double tcp_count, double udp_count, double process_count, double thread_count,
-                            double network_rx, double network_tx, double network_in, double network_out, double memory_total, double memory_used,
+                            double network_rx, double network_tx, double network_in, double network_out, double last_network_in, double last_network_out, double memory_total, double memory_used,
                             double swap_total, double swap_used, double hdd_total, double hdd_used, double io_read, double io_write, double cpu,
                             double online4, double online6)
 {
@@ -326,6 +327,8 @@ void CMain::WatchdogMessage(int ClientNetID, double load_1, double load_5, doubl
         symbol_table.add_variable("network_tx",network_tx);
         symbol_table.add_variable("network_in",network_in);
         symbol_table.add_variable("network_out",network_out);
+        symbol_table.add_variable("last_network_in",last_network_in);
+        symbol_table.add_variable("last_network_out",last_network_out);
         symbol_table.add_variable("memory_total",memory_total);
         symbol_table.add_variable("memory_used",memory_used);
         symbol_table.add_variable("swap_total",swap_total);
diff --git a/server/src/main.h b/server/src/main.h
index 3649661..cc6e518 100644
--- a/server/src/main.h
+++ b/server/src/main.h
@@ -122,8 +122,8 @@ public:
     void WatchdogMessage(int ClientNetID,
                          double load_1, double load_5, double load_15, double ping_10010, double ping_189, double ping_10086,
                          double time_10010, double time_189, double time_10086, double tcp_count, double udp_count, double process_count, double thread_count,
-                         double network_rx, double network_tx, double network_in, double network_out,double memory_total,
-                         double memory_used,double swap_total, double swap_used, double hdd_total,
+                         double network_rx, double network_tx, double network_in, double network_out, double last_network_in, double last_network_out,
+                         double memory_total, double memory_used,double swap_total, double swap_used, double hdd_total,
                          double hdd_used, double io_read, double io_write, double cpu,double online4, double online6);
 
 	CClient *Client(int ClientID) { return &m_aClients[ClientID]; }