Separate vm.stats.vm.v_swappgs module
Vladimir Kobal committed
Mar 9, 2017 at 16:59 UTC
38ba87238755bb0adceef06cb23483c728fd5fee
3 files changed
+49
-24
src/freebsd_sysctl.c
+47
-24
@@ -796,6 +796,52 @@ int do_system_ram(int update_every, usec_t dt) {
796
return 0;
797
}
798
799
+// --------------------------------------------------------------------------------------------------------------------
800
+// vm.stats.vm.v_swappgs
801
+
802
+int do_vm_stats_sys_v_swappgs(int update_every, usec_t dt) {
803
+ static int mib_swappgsin[4] = {0, 0, 0, 0};
804
+ static int mib_swappgsout[4] = {0, 0, 0, 0};
805
+ struct vmmeter vmmeter_data;
806
+
807
+ if (unlikely(GETSYSCTL_SIMPLE("vm.stats.vm.v_swappgsin", mib_swappgsin, vmmeter_data.v_swappgsin) ||
808
+ GETSYSCTL_SIMPLE("vm.stats.vm.v_swappgsout", mib_swappgsout, vmmeter_data.v_swappgsout))) {
809
+ error("DISABLED: system.swapio chart");
810
+ error("DISABLED: vm.stats.vm.v_swappgs module");
811
+ return 1;
812
+ } else {
813
+
814
+ // --------------------------------------------------------------------
815
+
816
+ static RRDSET *st = NULL;
817
+ static RRDDIM *rd_in = NULL, *rd_out = NULL;
818
+
819
+ if (unlikely(!st)) {
820
+ st = rrdset_create_localhost("system",
821
+ "swapio",
822
+ NULL,
823
+ "swap",
824
+ NULL,
825
+ "Swap I/O",
826
+ "kilobytes/s",
827
+ 250,
828
+ update_every,
829
+ RRDSET_TYPE_AREA
830
+ );
831
+
832
+ rd_in = rrddim_add(st, "in", NULL, system_pagesize, KILO_FACTOR, RRD_ALGORITHM_INCREMENTAL);
833
+ rd_out = rrddim_add(st, "out", NULL, -system_pagesize, KILO_FACTOR, RRD_ALGORITHM_INCREMENTAL);
834
+ }
835
+ else rrdset_next(st);
836
+
837
+ rrddim_set_by_pointer(st, rd_in, vmmeter_data.v_swappgsin);
838
+ rrddim_set_by_pointer(st, rd_out, vmmeter_data.v_swappgsout);
839
+ rrdset_done(st);
840
+ }
841
+
842
+ return 0;
843
+}
844
+
845
// --------------------------------------------------------------------------------------------------------------------
846
// old sources
847
@@ -806,7 +852,7 @@ int do_system_ram(int update_every, usec_t dt) {
852
#define IFA_DATA(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
853
854
int do_freebsd_sysctl_old(int update_every, usec_t dt) {
809
- static int do_disk_io = -1, do_swapio = -1,
855
+ static int do_disk_io = -1,
856
do_pgfaults = -1, do_ipc_semaphores = -1, do_ipc_shared_mem = -1, do_ipc_msg_queues = -1,
857
do_netisr = -1, do_netisr_per_core = -1, do_bandwidth = -1,
858
do_tcp_sockets = -1, do_tcp_packets = -1, do_tcp_errors = -1, do_tcp_handshake = -1,
@@ -819,7 +865,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
865
866
if (unlikely(do_uptime == -1)) {
867
do_disk_io = config_get_boolean("plugin:freebsd:sysctl", "stats for all disks", 1);
822
- do_swapio = config_get_boolean("plugin:freebsd:sysctl", "swap i/o", 1);
868
do_pgfaults = config_get_boolean("plugin:freebsd:sysctl", "memory page faults", 1);
869
do_ipc_semaphores = config_get_boolean("plugin:freebsd:sysctl", "ipc semaphores", 1);
870
do_ipc_shared_mem = config_get_boolean("plugin:freebsd:sysctl", "ipc shared memory", 1);
@@ -1158,28 +1203,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1203
1204
// --------------------------------------------------------------------
1205
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;
1164
- error("DISABLED: system.swapio");
1165
- } else {
1166
- st = rrdset_find_localhost("system.swapio");
1167
- if (unlikely(!st)) {
1168
- st = rrdset_create_localhost("system", "swapio", NULL, "swap", NULL, "Swap I/O", "kilobytes/s", 250, update_every, RRDSET_TYPE_AREA);
1169
-
1170
- rrddim_add(st, "in", NULL, system_pagesize, 1024, RRD_ALGORITHM_INCREMENTAL);
1171
- rrddim_add(st, "out", NULL, -system_pagesize, 1024, RRD_ALGORITHM_INCREMENTAL);
1172
- }
1173
- else rrdset_next(st);
1174
-
1175
- rrddim_set(st, "in", vmmeter_data.v_swappgsin);
1176
- rrddim_set(st, "out", vmmeter_data.v_swappgsout);
1177
- rrdset_done(st);
1178
- }
1179
- }
1180
-
1181
- // --------------------------------------------------------------------
1182
-
1206
if (likely(do_pgfaults)) {
1207
if (unlikely(GETSYSCTL_BY_NAME("vm.stats.vm.v_vm_faults", vmmeter_data.v_vm_faults) ||
1208
GETSYSCTL_BY_NAME("vm.stats.vm.v_io_faults", vmmeter_data.v_io_faults) ||
src/plugin_freebsd.c
+1
@@ -27,6 +27,7 @@ static struct freebsd_module {
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
+ { .name = "vm.stats.vm.v_swappgs", .dim = "swap_io", .enabled = 1, .func = do_vm_stats_sys_v_swappgs },
31
32
// the terminator of this array
33
{ .name = NULL, .dim = NULL, .enabled = 0, .func = NULL }
src/plugin_freebsd.h
+1
@@ -18,6 +18,7 @@ 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
+extern int do_vm_stats_sys_v_swappgs(int update_every, usec_t dt);
22
23
extern int do_freebsd_sysctl_old(int update_every, usec_t dt);
24