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