#define IFA_DATA(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
int do_freebsd_sysctl(int update_every, usec_t dt) {
- (void)dt;
-
static int do_cpu = -1, do_cpu_cores = -1, do_interrupts = -1, do_context = -1, do_forks = -1, do_processes = -1,
do_loadavg = -1, do_all_processes = -1, do_disk_io = -1, do_swap = -1, do_ram = -1, do_swapio = -1,
do_pgfaults = -1, do_committed = -1, do_ipc_semaphores = -1, do_ipc_shared_mem = -1, do_ipc_msg_queues = -1,
char title[4096 + 1];
// NEEDED BY: do_loadavg
- static usec_t last_loadavg_usec = 0;
+ static usec_t next_loadavg_dt = 0;
struct loadavg sysload;
// NEEDED BY: do_cpu, do_cpu_cores
// --------------------------------------------------------------------
- if (last_loadavg_usec <= dt) {
+ if (next_loadavg_dt <= dt) {
if (likely(do_loadavg)) {
if (unlikely(GETSYSCTL("vm.loadavg", sysload))) {
do_loadavg = 0;
}
}
- last_loadavg_usec = st->update_every * USEC_PER_SEC;
+ next_loadavg_dt = st->update_every * USEC_PER_SEC;
}
- else last_loadavg_usec -= dt;
+ else next_loadavg_dt -= dt;
// --------------------------------------------------------------------
if (unlikely(GETSYSCTL("vm.stats.vm.v_active_count", vmmeter_data.v_active_count) ||
GETSYSCTL("vm.stats.vm.v_inactive_count", vmmeter_data.v_inactive_count) ||
GETSYSCTL("vm.stats.vm.v_wire_count", vmmeter_data.v_wire_count) ||
+#if __FreeBSD_version < 1200016
GETSYSCTL("vm.stats.vm.v_cache_count", vmmeter_data.v_cache_count) ||
+#endif
GETSYSCTL("vfs.bufspace", vfs_bufspace_count) ||
GETSYSCTL("vm.stats.vm.v_free_count", vmmeter_data.v_free_count))) {
do_ram = 0;
rrddim_add(st, "active", NULL, system_pagesize, MEGA_FACTOR, RRDDIM_ABSOLUTE);
rrddim_add(st, "inactive", NULL, system_pagesize, MEGA_FACTOR, RRDDIM_ABSOLUTE);
rrddim_add(st, "wired", NULL, system_pagesize, MEGA_FACTOR, RRDDIM_ABSOLUTE);
+#if __FreeBSD_version < 1200016
rrddim_add(st, "cache", NULL, system_pagesize, MEGA_FACTOR, RRDDIM_ABSOLUTE);
+#endif
rrddim_add(st, "buffers", NULL, 1, MEGA_FACTOR, RRDDIM_ABSOLUTE);
rrddim_add(st, "free", NULL, system_pagesize, MEGA_FACTOR, RRDDIM_ABSOLUTE);
}
rrddim_set(st, "active", vmmeter_data.v_active_count);
rrddim_set(st, "inactive", vmmeter_data.v_inactive_count);
rrddim_set(st, "wired", vmmeter_data.v_wire_count);
+#if __FreeBSD_version < 1200016
rrddim_set(st, "cache", vmmeter_data.v_cache_count);
+#endif
rrddim_set(st, "buffers", vfs_bufspace_count);
rrddim_set(st, "free", vmmeter_data.v_free_count);
rrdset_done(st);