@cryptotaxi247 / netdata-1 / commits / 76a36096f

convert plugin_proc to heartbeat API

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

Rémi Lefèvre committed Dec 13, 2016 at 16:15 UTC 76a36096f23dbe55897cecf21f3ec86968c456e2
7 files changed +15 -27
src/plugin_proc.c
+8 -14
@@ -7,7 +7,6 @@ static struct proc_module {
7 int enabled;
8
9 int (*func)(int update_every, usec_t dt);
10 - usec_t last_run_usec;
10 usec_t duration;
11
12 RRDDIM *rd;
@@ -76,20 +75,17 @@ void *proc_main(void *ptr) {
75 struct proc_module *pm = &proc_modules[i];
76
77 pm->enabled = config_get_boolean("plugin:proc", pm->name, 1);
79 - pm->last_run_usec = 0ULL;
78 pm->duration = 0ULL;
79 pm->rd = NULL;
80 }
81
82 usec_t step = rrd_update_every * USEC_PER_SEC;
85 - for(;;) {
86 - usec_t now = now_monotonic_usec();
87 - usec_t next = now - (now % step) + step;
83 + heartbeat_t hb;
84 + heartbeat_init(&hb);
85
89 - while(now < next) {
90 - sleep_usec(next - now);
91 - now = now_monotonic_usec();
92 - }
86 + for(;;) {
87 + usec_t hb_dt = heartbeat_next(&hb, step);
88 + usec_t duration = 0ULL;
89
90 if(unlikely(netdata_exit)) break;
91
@@ -101,11 +97,9 @@ void *proc_main(void *ptr) {
97
98 debug(D_PROCNETDEV_LOOP, "PROC calling %s.", pm->name);
99
104 - pm->enabled = !pm->func(rrd_update_every, (pm->last_run_usec > 0)?now - pm->last_run_usec:0ULL);
105 - pm->last_run_usec = now;
106 -
107 - now = now_monotonic_usec();
108 - pm->duration = now - pm->last_run_usec;
100 + pm->enabled = !pm->func(rrd_update_every, hb_dt);
101 + pm->duration = heartbeat_dt_usec(&hb) - duration;
102 + duration += pm->duration;
103
104 if(unlikely(netdata_exit)) break;
105 }
src/proc_diskstats.c
-2
@@ -197,8 +197,6 @@ static inline int is_major_enabled(int major) {
197 }
198
199 int do_proc_diskstats(int update_every, usec_t dt) {
200 - (void)dt;
201 -
200 static procfile *ff = NULL;
201 static int global_enable_new_disks_detected_at_runtime = CONFIG_ONDEMAND_YES,
202 global_enable_performance_for_physical_disks = CONFIG_ONDEMAND_ONDEMAND,
src/proc_loadavg.c
+4 -4
@@ -6,7 +6,7 @@
6 int do_proc_loadavg(int update_every, usec_t dt) {
7 static procfile *ff = NULL;
8 static int do_loadavg = -1, do_all_processes = -1;
9 - static usec_t last_loadavg_usec = 0;
9 + static usec_t next_loadavg_dt = 0;
10 static RRDSET *load_chart = NULL, *processes_chart = NULL;
11
12 if(unlikely(!ff)) {
@@ -47,7 +47,7 @@ int do_proc_loadavg(int update_every, usec_t dt) {
47
48 // --------------------------------------------------------------------
49
50 - if(last_loadavg_usec <= dt) {
50 + if(next_loadavg_dt <= dt) {
51 if(likely(do_loadavg)) {
52 if(unlikely(!load_chart)) {
53 load_chart = rrdset_find_byname("system.load");
@@ -67,9 +67,9 @@ int do_proc_loadavg(int update_every, usec_t dt) {
67 rrdset_done(load_chart);
68 }
69
70 - last_loadavg_usec = load_chart->update_every * USEC_PER_SEC;
70 + next_loadavg_dt = load_chart->update_every * USEC_PER_SEC;
71 }
72 - else last_loadavg_usec -= dt;
72 + else next_loadavg_dt -= dt;
73
74 // --------------------------------------------------------------------
75
src/proc_net_dev.c
-1
@@ -111,7 +111,6 @@ static struct netdev *get_netdev(const char *name) {
111
112 int do_proc_net_dev(int update_every, usec_t dt) {
113 (void)dt;
114 -
114 static SIMPLE_PATTERN *disabled_list = NULL;
115 static procfile *ff = NULL;
116 static int enable_new_interfaces = -1;
src/proc_net_ip_vs_stats.c
+1 -2
@@ -3,6 +3,7 @@
3 #define RRD_TYPE_NET_IPVS "ipvs"
4
5 int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
6 + (void)dt;
7 static int do_bandwidth = -1, do_sockets = -1, do_packets = -1;
8 static procfile *ff = NULL;
9
@@ -10,8 +11,6 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
11 if(do_sockets == -1) do_sockets = config_get_boolean("plugin:proc:/proc/net/ip_vs_stats", "IPVS connections", 1);
12 if(do_packets == -1) do_packets = config_get_boolean("plugin:proc:/proc/net/ip_vs_stats", "IPVS packets", 1);
13
13 - if(dt) {};
14 -
14 if(!ff) {
15 char filename[FILENAME_MAX + 1];
16 snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/ip_vs_stats");
src/proc_net_rpc_nfsd.c
+1 -2
@@ -210,12 +210,11 @@ struct nfsd_procs nfsd4_ops_values[] = {
210
211
212 int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
213 + (void)dt;
214 static procfile *ff = NULL;
215 static int do_rc = -1, do_fh = -1, do_io = -1, do_th = -1, do_ra = -1, do_net = -1, do_rpc = -1, do_proc2 = -1, do_proc3 = -1, do_proc4 = -1, do_proc4ops = -1;
216 static int ra_warning = 0, th_warning = 0, proc2_warning = 0, proc3_warning = 0, proc4_warning = 0, proc4ops_warning = 0;
217
217 - if(dt) {};
218 -
218 if(!ff) {
219 char filename[FILENAME_MAX + 1];
220 snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/rpc/nfsd");
src/sys_kernel_mm_ksm.c
+1 -2
@@ -20,11 +20,10 @@ KSM_NAME_VALUE values[] = {
20 };
21
22 int do_sys_kernel_mm_ksm(int update_every, usec_t dt) {
23 + (void)dt;
24 static procfile *ff_pages_shared = NULL, *ff_pages_sharing = NULL, *ff_pages_unshared = NULL, *ff_pages_volatile = NULL, *ff_pages_to_scan = NULL;
25 static long page_size = -1;
26
26 - if(dt) {};
27 -
27 if(page_size == -1)
28 page_size = sysconf(_SC_PAGESIZE);
29