summaryrefslogtreecommitdiffstats
path: root/collectors
diff options
context:
space:
mode:
authorvkalintiris <vasilis@netdata.cloud>2022-11-22 04:52:15 +0200
committerGitHub <noreply@github.com>2022-11-22 04:52:15 +0200
commit2d5f3acf71f0c759056a3269987fee484566bc4c (patch)
tree5246e1080ea721ba84e5f749f8d8e98d978d81c8 /collectors
parent147552807bc19af949fe3cb315c4743dadfa7f0b (diff)
Do not force internal collectors to call rrdset_next. (#13926)
* Remove calls to rrdset_next(). * Rm checks plugin * Update documentantion * Call rrdset_next from within rrdset_done This wraps up the removal of rrdset_next from internal collectors, which removes a lot of unecessary code and the need for if/else clauses in every place. The pluginsd parser is the only component that calls rrdset_next*() functions because it's not strictly speaking a collector but more of a collector manager/proxy. With the current changes it's possible to simplify the API we expose from RRD significantly, but this will be follow-up work in the future. * Remove stale reference to checks.plugin * Fix RRD unit test rrdset_next is not meant to be called from these tests. * Fix db engine unit test. * Schedule rrdset_next when we have completed at least one collection. * Mark chart creation clauses as unlikely. * Add missing brace to fix FreeBSD plugin.
Diffstat (limited to 'collectors')
-rw-r--r--collectors/COLLECTORS.md1
-rw-r--r--collectors/Makefile.am1
-rw-r--r--collectors/REFERENCE.md5
-rw-r--r--collectors/cgroups.plugin/sys_fs_cgroup.c298
-rw-r--r--collectors/checks.plugin/Makefile.am8
-rw-r--r--collectors/checks.plugin/README.md10
-rw-r--r--collectors/checks.plugin/plugin_checks.c128
-rw-r--r--collectors/diskspace.plugin/plugin_diskspace.c10
-rw-r--r--collectors/freebsd.plugin/freebsd_devstat.c50
-rw-r--r--collectors/freebsd.plugin/freebsd_getifaddrs.c48
-rw-r--r--collectors/freebsd.plugin/freebsd_getmntinfo.c10
-rw-r--r--collectors/freebsd.plugin/freebsd_ipfw.c31
-rw-r--r--collectors/freebsd.plugin/freebsd_kstat_zfs.c8
-rw-r--r--collectors/freebsd.plugin/freebsd_sysctl.c276
-rw-r--r--collectors/idlejitter.plugin/plugin_idlejitter.c10
-rw-r--r--collectors/macos.plugin/macos_fw.c46
-rw-r--r--collectors/macos.plugin/macos_mach_smi.c16
-rw-r--r--collectors/macos.plugin/macos_sysctl.c153
-rw-r--r--collectors/plugins.d/pluginsd_parser.c6
-rw-r--r--collectors/proc.plugin/ipc.c18
-rw-r--r--collectors/proc.plugin/proc_diskstats.c68
-rw-r--r--collectors/proc.plugin/proc_interrupts.c7
-rw-r--r--collectors/proc.plugin/proc_loadavg.c13
-rw-r--r--collectors/proc.plugin/proc_mdstat.c36
-rw-r--r--collectors/proc.plugin/proc_meminfo.c35
-rw-r--r--collectors/proc.plugin/proc_net_dev.c36
-rw-r--r--collectors/proc.plugin/proc_net_ip_vs_stats.c10
-rw-r--r--collectors/proc.plugin/proc_net_netstat.c170
-rw-r--r--collectors/proc.plugin/proc_net_rpc_nfs.c15
-rw-r--r--collectors/proc.plugin/proc_net_rpc_nfsd.c31
-rw-r--r--collectors/proc.plugin/proc_net_sctp_snmp.c6
-rw-r--r--collectors/proc.plugin/proc_net_sockstat.c9
-rw-r--r--collectors/proc.plugin/proc_net_sockstat6.c5
-rw-r--r--collectors/proc.plugin/proc_net_softnet_stat.c2
-rw-r--r--collectors/proc.plugin/proc_net_stat_conntrack.c6
-rw-r--r--collectors/proc.plugin/proc_net_stat_synproxy.c3
-rw-r--r--collectors/proc.plugin/proc_net_wireless.c13
-rw-r--r--collectors/proc.plugin/proc_pagetypeinfo.c6
-rw-r--r--collectors/proc.plugin/proc_pressure.c6
-rw-r--r--collectors/proc.plugin/proc_softirqs.c7
-rw-r--r--collectors/proc.plugin/proc_spl_kstat_zfs.c3
-rw-r--r--collectors/proc.plugin/proc_stat.c22
-rw-r--r--collectors/proc.plugin/proc_sys_kernel_random_entropy_avail.c2
-rw-r--r--collectors/proc.plugin/proc_uptime.c4
-rw-r--r--collectors/proc.plugin/proc_vmstat.c5
-rw-r--r--collectors/proc.plugin/sys_block_zram.c78
-rw-r--r--collectors/proc.plugin/sys_class_infiniband.c15
-rw-r--r--collectors/proc.plugin/sys_class_power_supply.c4
-rw-r--r--collectors/proc.plugin/sys_devices_system_edac_mc.c4
-rw-r--r--collectors/proc.plugin/sys_devices_system_node.c1
-rw-r--r--collectors/proc.plugin/sys_fs_btrfs.c4
-rw-r--r--collectors/proc.plugin/sys_kernel_mm_ksm.c7
-rw-r--r--collectors/proc.plugin/zfs_common.c52
-rw-r--r--collectors/statsd.plugin/statsd.c20
-rw-r--r--collectors/tc.plugin/plugin_tc.c8
-rw-r--r--collectors/timex.plugin/plugin_timex.c10
56 files changed, 227 insertions, 1629 deletions
diff --git a/collectors/COLLECTORS.md b/collectors/COLLECTORS.md
index 5c41b704fd..7f66076ff0 100644
--- a/collectors/COLLECTORS.md
+++ b/collectors/COLLECTORS.md
@@ -514,6 +514,5 @@ default. To use a third-party collector, visit their GitHub/documentation page a
## Etc
-- [checks.plugin](checks.plugin/README.md): A debugging collector, disabled by default.
- [charts.d example](charts.d.plugin/example/README.md): An example `charts.d` collector.
- [python.d example](python.d.plugin/example/README.md): An example `python.d` collector.
diff --git a/collectors/Makefile.am b/collectors/Makefile.am
index a0a972e8f3..9f8bf52807 100644
--- a/collectors/Makefile.am
+++ b/collectors/Makefile.am
@@ -7,7 +7,6 @@ SUBDIRS = \
apps.plugin \
cgroups.plugin \
charts.d.plugin \
- checks.plugin \
cups.plugin \
diskspace.plugin \
timex.plugin \
diff --git a/collectors/REFERENCE.md b/collectors/REFERENCE.md
index 949858f600..939b189ee7 100644
--- a/collectors/REFERENCE.md
+++ b/collectors/REFERENCE.md
@@ -148,11 +148,6 @@ collect_data() {
// attach a metric to it
rd = rrddim_add(st, "id", "name", multiplier, divider, algorithm);
}
- else {
- // this chart is already created
- // let Netdata know we start a new iteration on it
- rrdset_next(st);
- }
// give the collected value(s) to the chart
rrddim_set_by_pointer(st, rd, collected_value);
diff --git a/collectors/cgroups.plugin/sys_fs_cgroup.c b/collectors/cgroups.plugin/sys_fs_cgroup.c
index 3bee46dcf4..8f7548286c 100644
--- a/collectors/cgroups.plugin/sys_fs_cgroup.c
+++ b/collectors/cgroups.plugin/sys_fs_cgroup.c
@@ -1447,7 +1447,6 @@ static inline void cgroup2_read_pressure(struct pressure *res) {
return;
}
-
res->some.share_time.value10 = strtod(procfile_lineword(ff, 0, 2), NULL);
res->some.share_time.value60 = strtod(procfile_lineword(ff, 0, 4), NULL);
res->some.share_time.value300 = strtod(procfile_lineword(ff, 0, 6), NULL);
@@ -2847,57 +2846,45 @@ void update_systemd_services_charts(
// create the charts
- if(likely(do_cpu)) {
- if(unlikely(!st_cpu)) {
- char title[CHART_TITLE_MAX + 1];
- snprintfz(title, CHART_TITLE_MAX, "Systemd Services CPU utilization (100%% = 1 core)");
-
- st_cpu = rrdset_create_localhost(
- "services"
- , "cpu"
- , NULL
- , "cpu"
- , "services.cpu"
- , title
- , "percentage"
- , PLUGIN_CGROUPS_NAME
- , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
- , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD
- , update_every
- , RRDSET_TYPE_STACKED
- );
-
- }
- else
- rrdset_next(st_cpu);
+ if (unlikely(do_cpu && !st_cpu)) {
+ char title[CHART_TITLE_MAX + 1];
+ snprintfz(title, CHART_TITLE_MAX, "Systemd Services CPU utilization (100%% = 1 core)");
+
+ st_cpu = rrdset_create_localhost(
+ "services"
+ , "cpu"
+ , NULL
+ , "cpu"
+ , "services.cpu"
+ , title
+ , "percentage"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
+ , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
}
- if(likely(do_mem_usage)) {
- if(unlikely(!st_mem_usage)) {
-
- st_mem_usage = rrdset_create_localhost(
- "services"
- , "mem_usage"
- , NULL
- , "mem"
- , "services.mem_usage"
- , "Systemd Services Used Memory"
- , "MiB"
- , PLUGIN_CGROUPS_NAME
- , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
- , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD + 10
- , update_every
- , RRDSET_TYPE_STACKED
- );
-
- }
- else
- rrdset_next(st_mem_usage);
+ if (unlikely(do_mem_usage && !st_mem_usage)) {
+ st_mem_usage = rrdset_create_localhost(
+ "services"
+ , "mem_usage"
+ , NULL
+ , "mem"
+ , "services.mem_usage"
+ , "Systemd Services Used Memory"
+ , "MiB"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
+ , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD + 10
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
}
if(likely(do_mem_detailed)) {
if(unlikely(!st_mem_detailed_rss)) {
-
st_mem_detailed_rss = rrdset_create_localhost(
"services"
, "mem_rss"
@@ -2912,13 +2899,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_mem_detailed_rss);
if(unlikely(!st_mem_detailed_mapped)) {
-
st_mem_detailed_mapped = rrdset_create_localhost(
"services"
, "mem_mapped"
@@ -2933,13 +2916,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_mem_detailed_mapped);
if(unlikely(!st_mem_detailed_cache)) {
-
st_mem_detailed_cache = rrdset_create_localhost(
"services"
, "mem_cache"
@@ -2954,13 +2933,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_mem_detailed_cache);
if(unlikely(!st_mem_detailed_writeback)) {
-
st_mem_detailed_writeback = rrdset_create_localhost(
"services"
, "mem_writeback"
@@ -2977,11 +2952,8 @@ void update_systemd_services_charts(
);
}
- else
- rrdset_next(st_mem_detailed_writeback);
if(unlikely(!st_mem_detailed_pgfault)) {
-
st_mem_detailed_pgfault = rrdset_create_localhost(
"services"
, "mem_pgfault"
@@ -2997,11 +2969,8 @@ void update_systemd_services_charts(
, RRDSET_TYPE_STACKED
);
}
- else
- rrdset_next(st_mem_detailed_pgfault);
if(unlikely(!st_mem_detailed_pgmajfault)) {
-
st_mem_detailed_pgmajfault = rrdset_create_localhost(
"services"
, "mem_pgmajfault"
@@ -3016,13 +2985,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_mem_detailed_pgmajfault);
if(unlikely(!st_mem_detailed_pgpgin)) {
-
st_mem_detailed_pgpgin = rrdset_create_localhost(
"services"
, "mem_pgpgin"
@@ -3039,11 +3004,8 @@ void update_systemd_services_charts(
);
}
- else
- rrdset_next(st_mem_detailed_pgpgin);
if(unlikely(!st_mem_detailed_pgpgout)) {
-
st_mem_detailed_pgpgout = rrdset_create_localhost(
"services"
, "mem_pgpgout"
@@ -3058,61 +3020,45 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_mem_detailed_pgpgout);
}
- if(likely(do_mem_failcnt)) {
- if(unlikely(!st_mem_failcnt)) {
-
- st_mem_failcnt = rrdset_create_localhost(
- "services"
- , "mem_failcnt"
- , NULL
- , "mem"
- , "services.mem_failcnt"
- , "Systemd Services Memory Limit Failures"
- , "failures"
- , PLUGIN_CGROUPS_NAME
- , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
- , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD + 110
- , update_every
- , RRDSET_TYPE_STACKED
- );
-
- }
- else
- rrdset_next(st_mem_failcnt);
+ if(unlikely(do_mem_failcnt && !st_mem_failcnt)) {
+ st_mem_failcnt = rrdset_create_localhost(
+ "services"
+ , "mem_failcnt"
+ , NULL
+ , "mem"
+ , "services.mem_failcnt"
+ , "Systemd Services Memory Limit Failures"
+ , "failures"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
+ , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD + 110
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
}
- if(likely(do_swap_usage)) {
- if(unlikely(!st_swap_usage)) {
-
- st_swap_usage = rrdset_create_localhost(
- "services"
- , "swap_usage"
- , NULL
- , "swap"
- , "services.swap_usage"
- , "Systemd Services Swap Memory Used"
- , "MiB"
- , PLUGIN_CGROUPS_NAME
- , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
- , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD + 100
- , update_every
- , RRDSET_TYPE_STACKED
- );
-
- }
- else
- rrdset_next(st_swap_usage);
+ if (do_swap_usage && !st_swap_usage) {
+ st_swap_usage = rrdset_create_localhost(
+ "services"
+ , "swap_usage"
+ , NULL
+ , "swap"
+ , "services.swap_usage"
+ , "Systemd Services Swap Memory Used"
+ , "MiB"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_SYSTEMD_NAME
+ , NETDATA_CHART_PRIO_CGROUPS_SYSTEMD + 100
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
}
if(likely(do_io)) {
if(unlikely(!st_io_read)) {
-
st_io_read = rrdset_create_localhost(
"services"
, "io_read"
@@ -3127,13 +3073,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_io_read);
if(unlikely(!st_io_write)) {
-
st_io_write = rrdset_create_localhost(
"services"
, "io_write"
@@ -3148,15 +3090,11 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_io_write);
}
if(likely(do_io_ops)) {
if(unlikely(!st_io_serviced_read)) {
-
st_io_serviced_read = rrdset_create_localhost(
"services"
, "io_ops_read"
@@ -3171,13 +3109,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_io_serviced_read);
if(unlikely(!st_io_serviced_write)) {
-
st_io_serviced_write = rrdset_create_localhost(
"services"
, "io_ops_write"
@@ -3192,10 +3126,7 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_io_serviced_write);
}
if(likely(do_throttle_io)) {
@@ -3217,11 +3148,8 @@ void update_systemd_services_charts(
);
}
- else
- rrdset_next(st_throttle_io_read);
if(unlikely(!st_throttle_io_write)) {
-
st_throttle_io_write = rrdset_create_localhost(
"services"
, "throttle_io_write"
@@ -3236,15 +3164,11 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_throttle_io_write);
}
if(likely(do_throttle_ops)) {
if(unlikely(!st_throttle_ops_read)) {
-
st_throttle_ops_read = rrdset_create_localhost(
"services"
, "throttle_io_ops_read"
@@ -3259,13 +3183,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_throttle_ops_read);
if(unlikely(!st_throttle_ops_write)) {
-
st_throttle_ops_write = rrdset_create_localhost(
"services"
, "throttle_io_ops_write"
@@ -3280,15 +3200,11 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_throttle_ops_write);
}
if(likely(do_queued_ops)) {
if(unlikely(!st_queued_ops_read)) {
-
st_queued_ops_read = rrdset_create_localhost(
"services"
, "queued_io_ops_read"
@@ -3303,10 +3219,7 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_queued_ops_read);
if(unlikely(!st_queued_ops_write)) {
@@ -3324,15 +3237,11 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_queued_ops_write);
}
if(likely(do_merged_ops)) {
if(unlikely(!st_merged_ops_read)) {
-
st_merged_ops_read = rrdset_create_localhost(
"services"
, "merged_io_ops_read"
@@ -3347,13 +3256,9 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_merged_ops_read);
if(unlikely(!st_merged_ops_write)) {
-
st_merged_ops_write = rrdset_create_localhost(
"services"
, "merged_io_ops_write"
@@ -3368,10 +3273,7 @@ void update_systemd_services_charts(
, update_every
, RRDSET_TYPE_STACKED
);
-
}
- else
- rrdset_next(st_merged_ops_write);
}
// update the values
@@ -3828,8 +3730,6 @@ void update_cgroup_charts(int update_every) {
rrddim_add(cg->st_cpu, "system", NULL, 100, 1000000, RRD_ALGORITHM_INCREMENTAL);
}
}
- else
- rrdset_next(cg->st_cpu);
rrddim_set(cg->st_cpu, "user", cg->cpuacct_stat.user);
rrddim_set(cg->st_cpu, "system", cg->cpuacct_stat.system);
@@ -3896,8 +3796,6 @@ void update_cgroup_charts(int update_every) {
rrddim_add(cg->st_cpu_limit, "used", NULL, 1, 1000000, RRD_ALGORITHM_ABSOLUTE);
cg->prev_cpu_usage = (NETDATA_DOUBLE)(cg->cpuacct_stat.user + cg->cpuacct_stat.system) * 100;
}
- else
- rrdset_next(cg->st_cpu_limit);
NETDATA_DOUBLE cpu_usage = 0;
cpu_usage = (NETDATA_DOUBLE)(cg->cpuacct_stat.user + cg->cpuacct_stat.system) * 100;
@@ -3945,7 +3843,6 @@ void update_cgroup_charts(int update_every) {
rrdset_update_rrdlabels(cg->st_cpu_nr_throttled, cg->chart_labels);
rrddim_add(cg->st_cpu_nr_throttled, "throttled", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
} else {
- rrdset_next(cg->st_cpu_nr_throttled);
rrddim_set(cg->st_cpu_nr_throttled, "throttled", cg->cpuacct_cpu_throttling.nr_throttled_perc);
rrdset_done(cg->st_cpu_nr_throttled);
}
@@ -3971,7 +3868,6 @@ void update_cgroup_charts(int update_every) {
rrdset_update_rrdlabels(cg->st_cpu_throttled_time, cg->chart_labels);
rrddim_add(cg->st_cpu_throttled_time, "duration", NULL, 1, 1000000, RRD_ALGORITHM_INCREMENTAL);
} else {
- rrdset_next(cg->st_cpu_throttled_time);
rrddim_set(cg->st_cpu_throttled_time, "duration", cg->cpuacct_cpu_throttling.throttled_time);
rrdset_done(cg->st_cpu_throttled_time);
}
@@ -3999,7 +3895,6 @@ void update_cgroup_charts(int update_every) {
rrdset_update_rrdlabels(cg->st_cpu_shares, cg->chart_labels);
rrddim_add(cg->st_cpu_shares, "shares", NULL, 1, 1, RRD_ALGORITH