[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 17/23] REST POST API alert working


MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

From: arf20 <aruizfernandez05@xxxxxxxxx>

---
 alert.c     |  8 ++++----
 events.log  |  5 +++++
 monitor.c   |  3 +++
 monitor.cfg | 27 ---------------------------
 4 files changed, 12 insertions(+), 31 deletions(-)
 delete mode 100644 monitor.cfg

diff --git a/alert.c b/alert.c
index a9f51f1..a1ba674 100644
--- a/alert.c
+++ b/alert.c
@@ -130,8 +130,8 @@ alert_init()
         alerts[alerts_size].body_tmpl = strdup(body_tmpl);
 
         printf("\t%s: %s\n",
-            alerts[alerts_size].target,
-            type_str[alerts[alerts_size].type]
+            type_str[alerts[alerts_size].type],
+            alerts[alerts_size].target
         );
 
         alerts_size++;
@@ -157,9 +157,9 @@ alert_trigger(const target_t *target)
     strftime(timestr, 256, "%F %T", tm_now);
 
     for (int i = 0; i < alerts_size; i++) {
-        printf("[%s] [monitor] alerted %s about %s\n",
+        printf("[%s] [monitor] alerted %.16s about %s\n",
             timestr, alerts[i].target, target->name);
-        send_funcs[target->type](target, alerts[i].target, alerts[i].extra,
+        send_funcs[alerts[i].type](target, alerts[i].target, alerts[i].extra,
             alerts[i].body_tmpl);
     }
 }
diff --git a/events.log b/events.log
index 8399053..c481d10 100644
--- a/events.log
+++ b/events.log
@@ -78,3 +78,8 @@ dns,2025-10-27T15:43:17+0000,up
 https,2025-10-27T15:43:17+0000,up
 http,2025-11-04T18:39:12Z,down
 http,2025-11-04T18:40:12Z,up
+test,2025-11-10T12:34:07+0000,down
+test,2025-11-10T12:42:29+0000,up
+test,2025-11-10T12:42:54+0000,down
+test,2025-11-10T12:45:09+0000,up
+test,2025-11-10T12:46:50+0000,down
diff --git a/monitor.c b/monitor.c
index 109de89..a35e7ba 100644
--- a/monitor.c
+++ b/monitor.c
@@ -10,6 +10,7 @@
 
 #include "monitor.h"
 
+#include "alert.h"
 #include "config.h"
 
 
@@ -499,6 +500,8 @@ monitor_update_events(const char *log_path)
         printf("[%s] [monitor] %s is now %s\n",
             timestr, targets[i].name, status_str[targets[i].status]);
 
+        alert_trigger(&targets[i]);
+
         targets[i].status_1 = targets[i].status;
     }
 }
diff --git a/monitor.cfg b/monitor.cfg
deleted file mode 100644
index 226a88e..0000000
--- a/monitor.cfg
+++ /dev/null
@@ -1,27 +0,0 @@
-# Monitor config
-# target=type,name,target
-
-# listen port
-port=8888
-
-# monitor interval in seconds (sleep)
-interval=5
-
-# monitor events log path
-log=events.log
-
-# targets to monitor
-target=reach,ipv4,2.59.235.35
-target=dns,dns,arf20.com
-target=web,http,http://arf20.com
-target=web,https,https://arf20.com
-
-# email From
-from=status@xxxxxxxxx
-
-# what to alert
-# alert=api,<url>,<content-type>,<body template>
-alert=api,https://arf20.com/%s,application/json,{"content":"%s is %s"}
-# alert=email,<address>,<subject template>,<body template>
-alert=email,arf20@xxxxxxxxx,%s is %s,%s is %s
-
-- 
2.47.3


References:
[arfnet2-status PATCH 00/23] First releasearf20 <arf20@xxxxxxxxx>