@cryptotaxi247 / netdata-1 / commits / d4afd7533

fix(freebsd.plugin): fix sysctl arcstats.p fails on FreeBSD 14 (#18748)

Ilya Mashchenko committed Oct 10, 2024 at 17:12 UTC d4afd7533be7dabee3fef22895ac5313ab5e8f02
4 files changed +14 -1
src/collectors/freebsd.plugin/freebsd_kstat_zfs.c
+9
@@ -43,6 +43,8 @@ int do_kstat_zfs_misc_arcstats(int update_every, usec_t dt) {
43 int hash_chains[5];
44 int hash_chain_max[5];
45 int p[5];
46 + int pd[5];
47 + int pm[5];
48 int c[5];
49 int c_min[5];
50 int c_max[5];
@@ -145,7 +147,14 @@ int do_kstat_zfs_misc_arcstats(int update_every, usec_t dt) {
147 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.hash_collisions", mibs.hash_collisions, arcstats.hash_collisions);
148 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.hash_chains", mibs.hash_chains, arcstats.hash_chains);
149 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.hash_chain_max", mibs.hash_chain_max, arcstats.hash_chain_max);
150 +
151 +#if __FreeBSD_version >= 1400000
152 + GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.pd", mibs.pd, arcstats.pd);
153 + GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.pm", mibs.pm, arcstats.pm);
154 +#else
155 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.p", mibs.p, arcstats.p);
156 +#endif
157 +
158 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.c", mibs.c, arcstats.c);
159 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.c_min", mibs.c_min, arcstats.c_min);
160 GETSYSCTL_SIMPLE("kstat.zfs.misc.arcstats.c_max", mibs.c_max, arcstats.c_max);
src/collectors/proc.plugin/proc_spl_kstat_zfs.c
+2
@@ -54,6 +54,8 @@ int do_proc_spl_kstat_zfs_arcstats(int update_every, usec_t dt) {
54 arl_expect(arl_base, "hash_chains", &arcstats.hash_chains);
55 arl_expect(arl_base, "hash_chain_max", &arcstats.hash_chain_max);
56 arl_expect(arl_base, "p", &arcstats.p);
57 + arl_expect(arl_base, "pd", &arcstats.pd);
58 + arl_expect(arl_base, "pm", &arcstats.pd);
59 arl_expect(arl_base, "c", &arcstats.c);
60 arl_expect(arl_base, "c_min", &arcstats.c_min);
61 arl_expect(arl_base, "c_max", &arcstats.c_max);
src/collectors/proc.plugin/zfs_common.c
+1 -1
@@ -560,7 +560,7 @@ void generate_charts_arc_summary(const char *plugin, const char *module, int upd
560 //unsigned long long anon_hits = arcstats.hits - (arcstats.mfu_hits + arcstats.mru_hits + arcstats.mfu_ghost_hits + arcstats.mru_ghost_hits);
561
562 unsigned long long arc_size = arcstats.size;
563 - unsigned long long mru_size = arcstats.p;
563 + unsigned long long mru_size = arcstats.p > 0 ? arcstats.p : arcstats.pd + arcstats.pm;
564 //unsigned long long target_min_size = arcstats.c_min;
565 //unsigned long long target_max_size = arcstats.c_max;
566 unsigned long long target_size = arcstats.c;
src/collectors/proc.plugin/zfs_common.h
+2
@@ -41,6 +41,8 @@ struct arcstats {
41 unsigned long long hash_chains;
42 unsigned long long hash_chain_max;
43 unsigned long long p;
44 + unsigned long long pd;
45 + unsigned long long pm;
46 unsigned long long c;
47 unsigned long long c_min;
48 unsigned long long c_max;