]> arthur.barton.de Git - netdata.git/commitdiff
convert plugin_proc to heartbeat API
authorRémi Lefèvre <remi.lefevre@parrot.com>
Tue, 13 Dec 2016 15:15:19 +0000 (16:15 +0100)
committerRémi Lefèvre <remi.lefevre@parrot.com>
Mon, 23 Jan 2017 16:39:42 +0000 (17:39 +0100)
Signed-off-by: Rémi Lefèvre <remi.lefevre@parrot.com>
src/plugin_proc.c
src/proc_diskstats.c
src/proc_loadavg.c
src/proc_net_dev.c
src/proc_net_ip_vs_stats.c
src/proc_net_rpc_nfsd.c
src/sys_kernel_mm_ksm.c

index 9b66b7c28cb92c97cb61248668272da2ed5658e5..9fdb016fcb73960960cb2d0d406851efbcf85fcc 100644 (file)
@@ -7,7 +7,6 @@ static struct proc_module {
     int enabled;
 
     int (*func)(int update_every, usec_t dt);
-    usec_t last_run_usec;
     usec_t duration;
 
     RRDDIM *rd;
@@ -76,20 +75,17 @@ void *proc_main(void *ptr) {
         struct proc_module *pm = &proc_modules[i];
 
         pm->enabled = config_get_boolean("plugin:proc", pm->name, 1);
-        pm->last_run_usec = 0ULL;
         pm->duration = 0ULL;
         pm->rd = NULL;
     }
 
     usec_t step = rrd_update_every * USEC_PER_SEC;
-    for(;;) {
-        usec_t now = now_monotonic_usec();
-        usec_t next = now - (now % step) + step;
+    heartbeat_t hb;
+    heartbeat_init(&hb);
 
-        while(now < next) {
-            sleep_usec(next - now);
-            now = now_monotonic_usec();
-        }
+    for(;;) {
+        usec_t hb_dt = heartbeat_next(&hb, step);
+        usec_t duration = 0ULL;
 
         if(unlikely(netdata_exit)) break;
 
@@ -101,11 +97,9 @@ void *proc_main(void *ptr) {
 
             debug(D_PROCNETDEV_LOOP, "PROC calling %s.", pm->name);
 
-            pm->enabled = !pm->func(rrd_update_every, (pm->last_run_usec > 0)?now - pm->last_run_usec:0ULL);
-            pm->last_run_usec = now;
-
-            now = now_monotonic_usec();
-            pm->duration = now - pm->last_run_usec;
+            pm->enabled = !pm->func(rrd_update_every, hb_dt);
+            pm->duration = heartbeat_dt_usec(&hb) - duration;
+            duration += pm->duration;
 
             if(unlikely(netdata_exit)) break;
         }
index 9ccac6dc7cd0804771274bf4ebf23fd0d93498eb..036895d194e10a4cf2bc0789e70012beb03cd8a0 100644 (file)
@@ -197,8 +197,6 @@ static inline int is_major_enabled(int major) {
 }
 
 int do_proc_diskstats(int update_every, usec_t dt) {
-    (void)dt;
-
     static procfile *ff = NULL;
     static int  global_enable_new_disks_detected_at_runtime = CONFIG_ONDEMAND_YES,
                 global_enable_performance_for_physical_disks = CONFIG_ONDEMAND_ONDEMAND,
index 4326ffb7df7beb11b3bed5085b1245c0dd0eefc3..aa1b2aebb651d1fa28004baaa1c463befe16e51b 100644 (file)
@@ -6,7 +6,7 @@
 int do_proc_loadavg(int update_every, usec_t dt) {
     static procfile *ff = NULL;
     static int do_loadavg = -1, do_all_processes = -1;
-    static usec_t last_loadavg_usec = 0;
+    static usec_t next_loadavg_dt = 0;
     static RRDSET *load_chart = NULL, *processes_chart = NULL;
 
     if(unlikely(!ff)) {
@@ -47,7 +47,7 @@ int do_proc_loadavg(int update_every, usec_t dt) {
 
     // --------------------------------------------------------------------
 
-    if(last_loadavg_usec <= dt) {
+    if(next_loadavg_dt <= dt) {
         if(likely(do_loadavg)) {
             if(unlikely(!load_chart)) {
                 load_chart = rrdset_find_byname("system.load");
@@ -67,9 +67,9 @@ int do_proc_loadavg(int update_every, usec_t dt) {
             rrdset_done(load_chart);
         }
 
-        last_loadavg_usec = load_chart->update_every * USEC_PER_SEC;
+        next_loadavg_dt = load_chart->update_every * USEC_PER_SEC;
     }
-    else last_loadavg_usec -= dt;
+    else next_loadavg_dt -= dt;
 
     // --------------------------------------------------------------------
 
index 82661abd439d8cc03f9abdbdcaacadd809702026..21f78dd17034e5f2d2efb8c6dcfe47fa2c6a3e27 100644 (file)
@@ -111,7 +111,6 @@ static struct netdev *get_netdev(const char *name) {
 
 int do_proc_net_dev(int update_every, usec_t dt) {
     (void)dt;
-
     static SIMPLE_PATTERN *disabled_list = NULL;
     static procfile *ff = NULL;
     static int enable_new_interfaces = -1;
index 34cadaea711e988ba7628818c98a146c1d33b3a6..a53299291ddbbc4ac88f4d82289413310d75f8c5 100644 (file)
@@ -3,6 +3,7 @@
 #define RRD_TYPE_NET_IPVS           "ipvs"
 
 int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
+    (void)dt;
     static int do_bandwidth = -1, do_sockets = -1, do_packets = -1;
     static procfile *ff = NULL;
 
@@ -10,8 +11,6 @@ int do_proc_net_ip_vs_stats(int update_every, usec_t dt) {
     if(do_sockets == -1)    do_sockets      = config_get_boolean("plugin:proc:/proc/net/ip_vs_stats", "IPVS connections", 1);
     if(do_packets == -1)    do_packets      = config_get_boolean("plugin:proc:/proc/net/ip_vs_stats", "IPVS packets", 1);
 
-    if(dt) {};
-
     if(!ff) {
         char filename[FILENAME_MAX + 1];
         snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/ip_vs_stats");
index 02a8c8f90115bf35b1c7d73e6caff6f727c40988..e857ad6a4066506ce15eb78483f29b08ce00e2dd 100644 (file)
@@ -210,12 +210,11 @@ struct nfsd_procs nfsd4_ops_values[] = {
 
 
 int do_proc_net_rpc_nfsd(int update_every, usec_t dt) {
+    (void)dt;
     static procfile *ff = NULL;
     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;
     static int ra_warning = 0, th_warning = 0, proc2_warning = 0, proc3_warning = 0, proc4_warning = 0, proc4ops_warning = 0;
 
-    if(dt) {};
-
     if(!ff) {
         char filename[FILENAME_MAX + 1];
         snprintfz(filename, FILENAME_MAX, "%s%s", global_host_prefix, "/proc/net/rpc/nfsd");
index 83da7442920021691626b0ccbaa29202e6f953f8..391aa4fd52a5012c19e2a0a720c6551f20079620 100644 (file)
@@ -20,11 +20,10 @@ KSM_NAME_VALUE values[] = {
 };
 
 int do_sys_kernel_mm_ksm(int update_every, usec_t dt) {
+    (void)dt;
     static procfile *ff_pages_shared = NULL, *ff_pages_sharing = NULL, *ff_pages_unshared = NULL, *ff_pages_volatile = NULL, *ff_pages_to_scan = NULL;
     static long page_size = -1;
 
-    if(dt) {};
-
     if(page_size == -1)
         page_size = sysconf(_SC_PAGESIZE);