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