@cryptotaxi247 / netdata-1 / commits / 81d54680d

Separate vm.stats.sys.v_swtch module

Vladimir Kobal committed Mar 9, 2017 at 02:08 UTC 81d54680d41c1a7c8808db88557b850bb0f31fe7
3 files changed +43 -23
src/freebsd_sysctl.c
+41 -23
@@ -561,6 +561,46 @@ int do_vm_stats_sys_v_soft(int update_every, usec_t dt) {
561 return 0;
562 }
563
564 +// --------------------------------------------------------------------------------------------------------------------
565 +// vm.stats.sys.v_swtch
566 +
567 +int do_vm_stats_sys_v_swtch(int update_every, usec_t dt) {
568 + static int mib[4] = {0, 0, 0, 0};
569 + u_int ctxt_number;
570 +
571 + if (unlikely(GETSYSCTL_SIMPLE("vm.stats.sys.v_swtch", mib, ctxt_number))) {
572 + error("DISABLED: system.ctxt chart");
573 + error("DISABLED: vm.stats.sys.v_swtch module");
574 + return 1;
575 + } else {
576 + static RRDSET *st = NULL;
577 + static RRDDIM *rd = NULL;
578 +
579 + st = rrdset_find_bytype_localhost("system", "ctxt");
580 + if (unlikely(!st)) {
581 + st = rrdset_create_localhost("system",
582 + "ctxt",
583 + NULL,
584 + "processes",
585 + NULL,
586 + "CPU Context Switches",
587 + "context switches/s",
588 + 800,
589 + update_every,
590 + RRDSET_TYPE_LINE
591 + );
592 +
593 + rd = rrddim_add(st, "switches", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
594 + }
595 + else rrdset_next(st);
596 +
597 + rrddim_set_by_pointer(st, rd, ctxt_number);
598 + rrdset_done(st);
599 + }
600 +
601 + return 0;
602 +}
603 +
604 // --------------------------------------------------------------------------------------------------------------------
605 // old sources
606
@@ -571,7 +611,7 @@ int do_vm_stats_sys_v_soft(int update_every, usec_t dt) {
611 #define IFA_DATA(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s)
612
613 int do_freebsd_sysctl_old(int update_every, usec_t dt) {
574 - static int do_context = -1, do_forks = -1, do_disk_io = -1, do_swap = -1, do_ram = -1, do_swapio = -1,
614 + static int do_forks = -1, do_disk_io = -1, do_swap = -1, do_ram = -1, do_swapio = -1,
615 do_pgfaults = -1, do_ipc_semaphores = -1, do_ipc_shared_mem = -1, do_ipc_msg_queues = -1,
616 do_netisr = -1, do_netisr_per_core = -1, do_bandwidth = -1,
617 do_tcp_sockets = -1, do_tcp_packets = -1, do_tcp_errors = -1, do_tcp_handshake = -1,
@@ -583,7 +623,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
623 do_icmp6_neighbor = -1, do_icmp6_types = -1, do_space = -1, do_inodes = -1, do_uptime = -1;
624
625 if (unlikely(do_uptime == -1)) {
586 - do_context = config_get_boolean("plugin:freebsd:sysctl", "context switches", 1);
626 do_forks = config_get_boolean("plugin:freebsd:sysctl", "processes started", 1);
627 do_disk_io = config_get_boolean("plugin:freebsd:sysctl", "stats for all disks", 1);
628 do_swap = config_get_boolean("plugin:freebsd:sysctl", "system swap", 1);
@@ -761,27 +800,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
800
801 // --------------------------------------------------------------------
802
764 - if (likely(do_context)) {
765 - if (unlikely(GETSYSCTL_BY_NAME("vm.stats.sys.v_swtch", u_int_data))) {
766 - do_context = 0;
767 - error("DISABLED: system.ctxt");
768 - } else {
769 -
770 - st = rrdset_find_bytype_localhost("system", "ctxt");
771 - if (unlikely(!st)) {
772 - st = rrdset_create_localhost("system", "ctxt", NULL, "processes", NULL, "CPU Context Switches", "context switches/s", 800, update_every, RRDSET_TYPE_LINE);
773 -
774 - rrddim_add(st, "switches", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
775 - }
776 - else rrdset_next(st);
777 -
778 - rrddim_set(st, "switches", u_int_data);
779 - rrdset_done(st);
780 - }
781 - }
782 -
783 - // --------------------------------------------------------------------
784 -
803 if (likely(do_forks)) {
804 if (unlikely(GETSYSCTL_BY_NAME("vm.stats.vm.v_forks", u_int_data))) {
805 do_forks = 0;
src/plugin_freebsd.c
+1
@@ -23,6 +23,7 @@ static struct freebsd_module {
23 { .name = "hw.intrcnt", .dim = "hw_intrcnt", .enabled = 1, .func = do_hw_intcnt },
24 { .name = "vm.stats.sys.v_intr", .dim = "dev_intrcnt", .enabled = 1, .func = do_vm_stats_sys_v_intr },
25 { .name = "vm.stats.sys.v_soft", .dim = "dev_intrcnt", .enabled = 1, .func = do_vm_stats_sys_v_soft },
26 + { .name = "vm.stats.sys.v_swtch", .dim = "dev_intrcnt", .enabled = 1, .func = do_vm_stats_sys_v_swtch },
27
28 // the terminator of this array
29 { .name = NULL, .dim = NULL, .enabled = 0, .func = NULL }
src/plugin_freebsd.h
+1
@@ -14,6 +14,7 @@ extern int do_kern_cp_times(int update_every, usec_t dt);
14 extern int do_hw_intcnt(int update_every, usec_t dt);
15 extern int do_vm_stats_sys_v_intr(int update_every, usec_t dt);
16 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_freebsd_sysctl_old(int update_every, usec_t dt);
19
20 #define GETSYSCTL_MIB(name, mib) getsysctl_mib(name, mib, sizeof(mib)/sizeof(int))