@cryptotaxi247 / netdata-1 / commits / ab59b2ea2

Separate system.ram module

Vladimir Kobal committed Mar 9, 2017 at 16:41 UTC ab59b2ea28b911faee23182c468a0741b7eb7ceb
3 files changed +74 -46
src/freebsd_sysctl.c
+72 -46
@@ -725,6 +725,77 @@ int do_vm_swap_info(int update_every, usec_t dt) {
725 return 0;
726 }
727
728 +// --------------------------------------------------------------------------------------------------------------------
729 +// system.ram
730 +
731 +int do_system_ram(int update_every, usec_t dt) {
732 + static int mib_v_active_count[4] = {0, 0, 0, 0};
733 + static int mib_v_inactive_count[4] = {0, 0, 0, 0};
734 + static int mib_v_wire_count[4] = {0, 0, 0, 0};
735 + static int mib_v_cache_count[4] = {0, 0, 0, 0};
736 + static int mib_vfs_bufspace[2] = {0, 0};
737 + static int mib_v_free_count[4] = {0, 0, 0, 0};
738 + struct vmmeter vmmeter_data;
739 + int vfs_bufspace_count;
740 +
741 + if (unlikely(GETSYSCTL_SIMPLE("vm.stats.vm.v_active_count", mib_v_active_count, vmmeter_data.v_active_count) ||
742 + GETSYSCTL_SIMPLE("vm.stats.vm.v_inactive_count", mib_v_inactive_count, vmmeter_data.v_inactive_count) ||
743 + GETSYSCTL_SIMPLE("vm.stats.vm.v_wire_count", mib_v_wire_count, vmmeter_data.v_wire_count) ||
744 +#if __FreeBSD_version < 1200016
745 + GETSYSCTL_SIMPLE("vm.stats.vm.v_cache_count", mib_v_cache_count, vmmeter_data.v_cache_count) ||
746 +#endif
747 + GETSYSCTL_SIMPLE("vfs.bufspace", mib_vfs_bufspace, vfs_bufspace_count) ||
748 + GETSYSCTL_SIMPLE("vm.stats.vm.v_free_count", mib_v_free_count, vmmeter_data.v_free_count))) {
749 + error("DISABLED: system.ram chart");
750 + error("DISABLED: System.ram module");
751 + return 1;
752 + } else {
753 +
754 + // --------------------------------------------------------------------
755 +
756 + static RRDSET *st = NULL;
757 + static RRDDIM *rd_free = NULL, *rd_active = NULL, *rd_inactive = NULL,
758 + *rd_wired = NULL, *rd_cache = NULL, *rd_buffers = NULL;
759 +
760 + st = rrdset_find_localhost("system.ram");
761 + if (unlikely(!st)) {
762 + st = rrdset_create_localhost("system",
763 + "ram",
764 + NULL,
765 + "ram",
766 + NULL,
767 + "System RAM",
768 + "MB",
769 + 200,
770 + update_every,
771 + RRDSET_TYPE_STACKED
772 + );
773 +
774 + rd_free = rrddim_add(st, "free", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
775 + rd_active = rrddim_add(st, "active", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
776 + rd_inactive = rrddim_add(st, "inactive", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
777 + rd_wired = rrddim_add(st, "wired", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
778 +#if __FreeBSD_version < 1200016
779 + rd_cache = rrddim_add(st, "cache", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
780 +#endif
781 + rd_buffers = rrddim_add(st, "buffers", NULL, 1, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
782 + }
783 + else rrdset_next(st);
784 +
785 + rrddim_set_by_pointer(st, rd_free, vmmeter_data.v_free_count);
786 + rrddim_set_by_pointer(st, rd_active, vmmeter_data.v_active_count);
787 + rrddim_set_by_pointer(st, rd_inactive, vmmeter_data.v_inactive_count);
788 + rrddim_set_by_pointer(st, rd_wired, vmmeter_data.v_wire_count);
789 +#if __FreeBSD_version < 1200016
790 + rrddim_set_by_pointer(st, rd_cache, vmmeter_data.v_cache_count);
791 +#endif
792 + rrddim_set_by_pointer(st, rd_buffers, vfs_bufspace_count);
793 + rrdset_done(st);
794 + }
795 +
796 + return 0;
797 +}
798 +
799 // --------------------------------------------------------------------------------------------------------------------
800 // old sources
801
@@ -735,7 +806,7 @@ int do_vm_swap_info(int update_every, usec_t dt) {
806 #define IFA_DATA(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
807
808 int do_freebsd_sysctl_old(int update_every, usec_t dt) {
738 - static int do_disk_io = -1, do_ram = -1, do_swapio = -1,
809 + static int do_disk_io = -1, do_swapio = -1,
810 do_pgfaults = -1, do_ipc_semaphores = -1, do_ipc_shared_mem = -1, do_ipc_msg_queues = -1,
811 do_netisr = -1, do_netisr_per_core = -1, do_bandwidth = -1,
812 do_tcp_sockets = -1, do_tcp_packets = -1, do_tcp_errors = -1, do_tcp_handshake = -1,
@@ -748,7 +819,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
819
820 if (unlikely(do_uptime == -1)) {
821 do_disk_io = config_get_boolean("plugin:freebsd:sysctl", "stats for all disks", 1);
751 - do_ram = config_get_boolean("plugin:freebsd:sysctl", "system ram", 1);
822 do_swapio = config_get_boolean("plugin:freebsd:sysctl", "swap i/o", 1);
823 do_pgfaults = config_get_boolean("plugin:freebsd:sysctl", "memory page faults", 1);
824 do_ipc_semaphores = config_get_boolean("plugin:freebsd:sysctl", "ipc semaphores", 1);
@@ -826,9 +896,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
896 // NEEDED BY: do_swapio, do_ram
897 struct vmmeter vmmeter_data;
898
829 - // NEEDED BY: do_ram
830 - int vfs_bufspace_count;
831 -
899 // NEEDED BY: do_ipc_semaphores
900 struct ipc_sem {
901 int semmni;
@@ -1091,47 +1158,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1158
1159 // --------------------------------------------------------------------
1160
1094 - if (likely(do_ram)) {
1095 - if (unlikely(GETSYSCTL_BY_NAME("vm.stats.vm.v_active_count", vmmeter_data.v_active_count) ||
1096 - GETSYSCTL_BY_NAME("vm.stats.vm.v_inactive_count", vmmeter_data.v_inactive_count) ||
1097 - GETSYSCTL_BY_NAME("vm.stats.vm.v_wire_count", vmmeter_data.v_wire_count) ||
1098 -#if __FreeBSD_version < 1200016
1099 - GETSYSCTL_BY_NAME("vm.stats.vm.v_cache_count", vmmeter_data.v_cache_count) ||
1100 -#endif
1101 - GETSYSCTL_BY_NAME("vfs.bufspace", vfs_bufspace_count) ||
1102 - GETSYSCTL_BY_NAME("vm.stats.vm.v_free_count", vmmeter_data.v_free_count))) {
1103 - do_ram = 0;
1104 - error("DISABLED: system.ram");
1105 - } else {
1106 - st = rrdset_find_localhost("system.ram");
1107 - if (unlikely(!st)) {
1108 - st = rrdset_create_localhost("system", "ram", NULL, "ram", NULL, "System RAM", "MB", 200, update_every, RRDSET_TYPE_STACKED);
1109 -
1110 - rrddim_add(st, "active", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
1111 - rrddim_add(st, "inactive", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
1112 - rrddim_add(st, "wired", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
1113 -#if __FreeBSD_version < 1200016
1114 - rrddim_add(st, "cache", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
1115 -#endif
1116 - rrddim_add(st, "buffers", NULL, 1, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
1117 - rrddim_add(st, "free", NULL, system_pagesize, MEGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
1118 - }
1119 - else rrdset_next(st);
1120 -
1121 - rrddim_set(st, "active", vmmeter_data.v_active_count);
1122 - rrddim_set(st, "inactive", vmmeter_data.v_inactive_count);
1123 - rrddim_set(st, "wired", vmmeter_data.v_wire_count);
1124 -#if __FreeBSD_version < 1200016
1125 - rrddim_set(st, "cache", vmmeter_data.v_cache_count);
1126 -#endif
1127 - rrddim_set(st, "buffers", vfs_bufspace_count);
1128 - rrddim_set(st, "free", vmmeter_data.v_free_count);
1129 - rrdset_done(st);
1130 - }
1131 - }
1132 -
1133 - // --------------------------------------------------------------------
1134 -
1161 if (likely(do_swapio)) {
1162 if (unlikely(GETSYSCTL_BY_NAME("vm.stats.vm.v_swappgsin", vmmeter_data.v_swappgsin) || GETSYSCTL_BY_NAME("vm.stats.vm.v_swappgsout", vmmeter_data.v_swappgsout))) {
1163 do_swapio = 0;
src/plugin_freebsd.c
+1
@@ -26,6 +26,7 @@ static struct freebsd_module {
26 { .name = "vm.stats.sys.v_swtch", .dim = "context_swtch", .enabled = 1, .func = do_vm_stats_sys_v_swtch },
27 { .name = "vm.stats.vm.v_forks", .dim = "forks", .enabled = 1, .func = do_vm_stats_sys_v_forks },
28 { .name = "vm.swap_info", .dim = "swap", .enabled = 1, .func = do_vm_swap_info },
29 + { .name = "system.ram", .dim = "system_ram", .enabled = 1, .func = do_system_ram },
30
31 // the terminator of this array
32 { .name = NULL, .dim = NULL, .enabled = 0, .func = NULL }
src/plugin_freebsd.h
+1
@@ -17,6 +17,7 @@ extern int do_vm_stats_sys_v_soft(int update_every, usec_t dt);
17 extern int do_vm_stats_sys_v_swtch(int update_every, usec_t dt);
18 extern int do_vm_stats_sys_v_forks(int update_every, usec_t dt);
19 extern int do_vm_swap_info(int update_every, usec_t dt);
20 +extern int do_system_ram(int update_every, usec_t dt);
21
22 extern int do_freebsd_sysctl_old(int update_every, usec_t dt);
23