]> arthur.barton.de Git - netdata.git/commitdiff
convert FreeBSD and MacOS plugins to heartbeat API
authorRémi Lefèvre <remi.lefevre@parrot.com>
Tue, 13 Dec 2016 17:56:44 +0000 (18:56 +0100)
committerRémi Lefèvre <remi.lefevre@parrot.com>
Mon, 23 Jan 2017 16:39:46 +0000 (17:39 +0100)
Signed-off-by: Rémi Lefèvre <remi.lefevre@parrot.com>
src/freebsd_sysctl.c
src/macos_sysctl.c
src/plugin_freebsd.c
src/plugin_macos.c

index 9400089dbe166fde2489d7492ef68c6d65483644..dda75dcf30b280015033893ea24f07baece68cc6 100644 (file)
@@ -52,8 +52,6 @@
 #define IFA_DATA(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
 
 int do_freebsd_sysctl(int update_every, usec_t dt) {
-    (void)dt;
-
     static int do_cpu = -1, do_cpu_cores = -1, do_interrupts = -1, do_context = -1, do_forks = -1, do_processes = -1,
         do_loadavg = -1, do_all_processes = -1, do_disk_io = -1, do_swap = -1, do_ram = -1, do_swapio = -1,
         do_pgfaults = -1, do_committed = -1, do_ipc_semaphores = -1, do_ipc_shared_mem = -1, do_ipc_msg_queues = -1,
@@ -132,7 +130,7 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
     char title[4096 + 1];
 
     // NEEDED BY: do_loadavg
-    static usec_t last_loadavg_usec = 0;
+    static usec_t next_loadavg_dt = 0;
     struct loadavg sysload;
 
     // NEEDED BY: do_cpu, do_cpu_cores
@@ -278,7 +276,7 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
 
     // --------------------------------------------------------------------
 
-    if (last_loadavg_usec <= dt) {
+    if (next_loadavg_dt <= dt) {
         if (likely(do_loadavg)) {
             if (unlikely(GETSYSCTL("vm.loadavg", sysload))) {
                 do_loadavg = 0;
@@ -301,9 +299,9 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
             }
         }
 
-        last_loadavg_usec = st->update_every * USEC_PER_SEC;
+        next_loadavg_dt = st->update_every * USEC_PER_SEC;
     }
-    else last_loadavg_usec -= dt;
+    else next_loadavg_dt -= dt;
 
     // --------------------------------------------------------------------
 
index 955b70757eb02c87ddb4ecaa7be9ad1abdbd8681..1b8765cd858d2fe8bab774a1210a4eddcd1ab25f 100644 (file)
@@ -24,8 +24,6 @@
 #define MIN_LOADAVG_UPDATE_EVERY 5
 
 int do_macos_sysctl(int update_every, usec_t dt) {
-    (void)dt;
-
     static int do_loadavg = -1, do_swap = -1, do_bandwidth = -1,
                do_tcp_packets = -1, do_tcp_errors = -1, do_tcp_handshake = -1, do_ecn = -1,
                do_tcpext_syscookies = -1, do_tcpext_ofo = -1, do_tcpext_connaborts = -1,
@@ -77,7 +75,7 @@ int do_macos_sysctl(int update_every, usec_t dt) {
     size_t size;
 
     // NEEDED BY: do_loadavg
-    static usec_t last_loadavg_usec = 0;
+    static usec_t next_loadavg_dt = 0;
     struct loadavg sysload;
 
     // NEEDED BY: do_swap
@@ -210,7 +208,7 @@ int do_macos_sysctl(int update_every, usec_t dt) {
 
     // --------------------------------------------------------------------
 
-    if (last_loadavg_usec <= dt) {
+    if (next_loadavg_dt <= dt) {
         if (likely(do_loadavg)) {
             if (unlikely(GETSYSCTL("vm.loadavg", sysload))) {
                 do_loadavg = 0;
@@ -233,9 +231,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
             }
         }
 
-        last_loadavg_usec = st->update_every * USEC_PER_SEC;
+        next_loadavg_dt = st->update_every * USEC_PER_SEC;
     }
-    else last_loadavg_usec -= dt;
+    else next_loadavg_dt -= dt;
 
     // --------------------------------------------------------------------
 
index bdc3599ea7de6474b9407f111c55df696cb3ac7c..d6deb7090a69c7f2a426a9357d7e3fd8aa272d06 100644 (file)
@@ -25,14 +25,10 @@ void *freebsd_main(void *ptr) {
     unsigned long long sutime_freebsd_sysctl = 0ULL;
 
     usec_t step = rrd_update_every * USEC_PER_SEC;
+    heartbeat_t hb;
+    heartbeat_init(&hb);
     for(;;) {
-        usec_t now = now_realtime_usec();
-        usec_t next = now - (now % step) + step;
-
-        while(now < next) {
-            sleep_usec(next - now);
-            now = now_realtime_usec();
-        }
+        usec_t hb_dt = heartbeat_next(&hb, step);
 
         if(unlikely(netdata_exit)) break;
 
@@ -40,9 +36,7 @@ void *freebsd_main(void *ptr) {
 
         if(!vdo_freebsd_sysctl) {
             debug(D_PROCNETDEV_LOOP, "FREEBSD: calling do_freebsd_sysctl().");
-            now = now_realtime_usec();
-            vdo_freebsd_sysctl = do_freebsd_sysctl(rrd_update_every, (sutime_freebsd_sysctl > 0)?now - sutime_freebsd_sysctl:0ULL);
-            sutime_freebsd_sysctl = now;
+            vdo_freebsd_sysctl = do_freebsd_sysctl(rrd_update_every, hb_dt);
         }
         if(unlikely(netdata_exit)) break;
 
index 3955c141442db9f3178547bb127b1ddeb31dc69b..cf4f740266caf443a746648e41064fd3d307f073 100644 (file)
@@ -29,14 +29,10 @@ void *macos_main(void *ptr) {
     unsigned long long sutime_macos_iokit = 0ULL;
 
     usec_t step = rrd_update_every * USEC_PER_SEC;
+    heartbeat_t hb;
+    heartbeat_init(&hb);
     for(;;) {
-        usec_t now = now_realtime_usec();
-        usec_t next = now - (now % step) + step;
-
-        while(now < next) {
-            sleep_usec(next - now);
-            now = now_realtime_usec();
-        }
+        usec_t hb_dt = heartbeat_next(&hb, step);
 
         if(unlikely(netdata_exit)) break;
 
@@ -44,25 +40,19 @@ void *macos_main(void *ptr) {
 
         if(!vdo_macos_sysctl) {
             debug(D_PROCNETDEV_LOOP, "MACOS: calling do_macos_sysctl().");
-            now = now_realtime_usec();
-            vdo_macos_sysctl = do_macos_sysctl(rrd_update_every, (sutime_macos_sysctl > 0)?now - sutime_macos_sysctl:0ULL);
-            sutime_macos_sysctl = now;
+            vdo_macos_sysctl = do_macos_sysctl(rrd_update_every, hb_dt);
         }
         if(unlikely(netdata_exit)) break;
 
         if(!vdo_macos_mach_smi) {
             debug(D_PROCNETDEV_LOOP, "MACOS: calling do_macos_mach_smi().");
-            now = now_realtime_usec();
-            vdo_macos_mach_smi = do_macos_mach_smi(rrd_update_every, (sutime_macos_mach_smi > 0)?now - sutime_macos_mach_smi:0ULL);
-            sutime_macos_mach_smi = now;
+            vdo_macos_mach_smi = do_macos_mach_smi(rrd_update_every, hb_dt);
         }
         if(unlikely(netdata_exit)) break;
 
         if(!vdo_macos_iokit) {
             debug(D_PROCNETDEV_LOOP, "MACOS: calling do_macos_iokit().");
-            now = now_realtime_usec();
-            vdo_macos_iokit = do_macos_iokit(rrd_update_every, (sutime_macos_iokit > 0)?now - sutime_macos_iokit:0ULL);
-            sutime_macos_iokit = now;
+            vdo_macos_iokit = do_macos_iokit(rrd_update_every, hb_dt);
         }
         if(unlikely(netdata_exit)) break;