@cryptotaxi247 / netdata-1 / commits / 16cd3b4fd

convert FreeBSD and MacOS plugins to heartbeat API

Signed-off-by: Rémi Lefèvre <remi.lefevre@parrot.com>

Rémi Lefèvre committed Dec 13, 2016 at 18:56 UTC 16cd3b4fdbe0f5654ed60a2c3b91c1d5eacd9813
4 files changed +18 -38
src/freebsd_sysctl.c
+4 -6
@@ -52,8 +52,6 @@
52 #define IFA_DATA(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
53
54 int do_freebsd_sysctl(int update_every, usec_t dt) {
55 - (void)dt;
56 -
55 static int do_cpu = -1, do_cpu_cores = -1, do_interrupts = -1, do_context = -1, do_forks = -1, do_processes = -1,
56 do_loadavg = -1, do_all_processes = -1, do_disk_io = -1, do_swap = -1, do_ram = -1, do_swapio = -1,
57 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) {
130 char title[4096 + 1];
131
132 // NEEDED BY: do_loadavg
135 - static usec_t last_loadavg_usec = 0;
133 + static usec_t next_loadavg_dt = 0;
134 struct loadavg sysload;
135
136 // NEEDED BY: do_cpu, do_cpu_cores
@@ -278,7 +276,7 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
276
277 // --------------------------------------------------------------------
278
281 - if (last_loadavg_usec <= dt) {
279 + if (next_loadavg_dt <= dt) {
280 if (likely(do_loadavg)) {
281 if (unlikely(GETSYSCTL("vm.loadavg", sysload))) {
282 do_loadavg = 0;
@@ -301,9 +299,9 @@ int do_freebsd_sysctl(int update_every, usec_t dt) {
299 }
300 }
301
304 - last_loadavg_usec = st->update_every * USEC_PER_SEC;
302 + next_loadavg_dt = st->update_every * USEC_PER_SEC;
303 }
306 - else last_loadavg_usec -= dt;
304 + else next_loadavg_dt -= dt;
305
306 // --------------------------------------------------------------------
307
src/macos_sysctl.c
+4 -6
@@ -24,8 +24,6 @@
24 #define MIN_LOADAVG_UPDATE_EVERY 5
25
26 int do_macos_sysctl(int update_every, usec_t dt) {
27 - (void)dt;
28 -
27 static int do_loadavg = -1, do_swap = -1, do_bandwidth = -1,
28 do_tcp_packets = -1, do_tcp_errors = -1, do_tcp_handshake = -1, do_ecn = -1,
29 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) {
75 size_t size;
76
77 // NEEDED BY: do_loadavg
80 - static usec_t last_loadavg_usec = 0;
78 + static usec_t next_loadavg_dt = 0;
79 struct loadavg sysload;
80
81 // NEEDED BY: do_swap
@@ -210,7 +208,7 @@ int do_macos_sysctl(int update_every, usec_t dt) {
208
209 // --------------------------------------------------------------------
210
213 - if (last_loadavg_usec <= dt) {
211 + if (next_loadavg_dt <= dt) {
212 if (likely(do_loadavg)) {
213 if (unlikely(GETSYSCTL("vm.loadavg", sysload))) {
214 do_loadavg = 0;
@@ -233,9 +231,9 @@ int do_macos_sysctl(int update_every, usec_t dt) {
231 }
232 }
233
236 - last_loadavg_usec = st->update_every * USEC_PER_SEC;
234 + next_loadavg_dt = st->update_every * USEC_PER_SEC;
235 }
238 - else last_loadavg_usec -= dt;
236 + else next_loadavg_dt -= dt;
237
238 // --------------------------------------------------------------------
239
src/plugin_freebsd.c
+4 -10
@@ -25,14 +25,10 @@ void *freebsd_main(void *ptr) {
25 unsigned long long sutime_freebsd_sysctl = 0ULL;
26
27 usec_t step = rrd_update_every * USEC_PER_SEC;
28 + heartbeat_t hb;
29 + heartbeat_init(&hb);
30 for(;;) {
29 - usec_t now = now_realtime_usec();
30 - usec_t next = now - (now % step) + step;
31 -
32 - while(now < next) {
33 - sleep_usec(next - now);
34 - now = now_realtime_usec();
35 - }
31 + usec_t hb_dt = heartbeat_next(&hb, step);
32
33 if(unlikely(netdata_exit)) break;
34
@@ -40,9 +36,7 @@ void *freebsd_main(void *ptr) {
36
37 if(!vdo_freebsd_sysctl) {
38 debug(D_PROCNETDEV_LOOP, "FREEBSD: calling do_freebsd_sysctl().");
43 - now = now_realtime_usec();
44 - vdo_freebsd_sysctl = do_freebsd_sysctl(rrd_update_every, (sutime_freebsd_sysctl > 0)?now - sutime_freebsd_sysctl:0ULL);
45 - sutime_freebsd_sysctl = now;
39 + vdo_freebsd_sysctl = do_freebsd_sysctl(rrd_update_every, hb_dt);
40 }
41 if(unlikely(netdata_exit)) break;
42
src/plugin_macos.c
+6 -16
@@ -29,14 +29,10 @@ void *macos_main(void *ptr) {
29 unsigned long long sutime_macos_iokit = 0ULL;
30
31 usec_t step = rrd_update_every * USEC_PER_SEC;
32 + heartbeat_t hb;
33 + heartbeat_init(&hb);
34 for(;;) {
33 - usec_t now = now_realtime_usec();
34 - usec_t next = now - (now % step) + step;
35 -
36 - while(now < next) {
37 - sleep_usec(next - now);
38 - now = now_realtime_usec();
39 - }
35 + usec_t hb_dt = heartbeat_next(&hb, step);
36
37 if(unlikely(netdata_exit)) break;
38
@@ -44,25 +40,19 @@ void *macos_main(void *ptr) {
40
41 if(!vdo_macos_sysctl) {
42 debug(D_PROCNETDEV_LOOP, "MACOS: calling do_macos_sysctl().");
47 - now = now_realtime_usec();
48 - vdo_macos_sysctl = do_macos_sysctl(rrd_update_every, (sutime_macos_sysctl > 0)?now - sutime_macos_sysctl:0ULL);
49 - sutime_macos_sysctl = now;
43 + vdo_macos_sysctl = do_macos_sysctl(rrd_update_every, hb_dt);
44 }
45 if(unlikely(netdata_exit)) break;
46
47 if(!vdo_macos_mach_smi) {
48 debug(D_PROCNETDEV_LOOP, "MACOS: calling do_macos_mach_smi().");
55 - now = now_realtime_usec();
56 - vdo_macos_mach_smi = do_macos_mach_smi(rrd_update_every, (sutime_macos_mach_smi > 0)?now - sutime_macos_mach_smi:0ULL);
57 - sutime_macos_mach_smi = now;
49 + vdo_macos_mach_smi = do_macos_mach_smi(rrd_update_every, hb_dt);
50 }
51 if(unlikely(netdata_exit)) break;
52
53 if(!vdo_macos_iokit) {
54 debug(D_PROCNETDEV_LOOP, "MACOS: calling do_macos_iokit().");
63 - now = now_realtime_usec();
64 - vdo_macos_iokit = do_macos_iokit(rrd_update_every, (sutime_macos_iokit > 0)?now - sutime_macos_iokit:0ULL);
65 - sutime_macos_iokit = now;
55 + vdo_macos_iokit = do_macos_iokit(rrd_update_every, hb_dt);
56 }
57 if(unlikely(netdata_exit)) break;
58