@cryptotaxi247 / netdata-1 / commits / 61bf5dc9f

Separate net.inet.tcp.states module

Vladimir Kobal committed Mar 14, 2017 at 13:12 UTC 61bf5dc9fbaa494684246728e2fb48a0ab25fc95
3 files changed +45 -25
src/freebsd_sysctl.c
+43 -25
@@ -1391,6 +1391,49 @@ int do_net_isr(int update_every, usec_t dt) {
1391 return 0;
1392 }
1393
1394 +// --------------------------------------------------------------------------------------------------------------------
1395 +// net.inet.tcp.states
1396 +
1397 +int do_net_inet_tcp_states(int update_every, usec_t dt) {
1398 + static int mib[4] = {0, 0, 0, 0};
1399 + uint64_t tcps_states[TCP_NSTATES];
1400 +
1401 + // see http://net-snmp.sourceforge.net/docs/mibs/tcp.html
1402 + if (unlikely(GETSYSCTL_SIMPLE("net.inet.tcp.states", mib, tcps_states))) {
1403 + error("DISABLED: ipv4.tcpsock chart");
1404 + error("DISABLED: net.inet.tcp.states module");
1405 + return 1;
1406 + } else {
1407 +
1408 + // --------------------------------------------------------------------
1409 +
1410 + static RRDSET *st = NULL;
1411 + static RRDDIM *rd = NULL;
1412 +
1413 + if (unlikely(!st)) {
1414 + st = rrdset_create_localhost("ipv4",
1415 + "tcpsock",
1416 + NULL,
1417 + "tcp",
1418 + NULL,
1419 + "IPv4 TCP Connections",
1420 + "active connections",
1421 + 2500,
1422 + update_every,
1423 + RRDSET_TYPE_LINE
1424 + );
1425 +
1426 + rd = rrddim_add(st, "CurrEstab", "connections", 1, 1, RRD_ALGORITHM_ABSOLUTE);
1427 + } else
1428 + rrdset_next(st);
1429 +
1430 + rrddim_set_by_pointer(st, rd, tcps_states[TCPS_ESTABLISHED]);
1431 + rrdset_done(st);
1432 + }
1433 +
1434 + return 0;
1435 +}
1436 +
1437 // --------------------------------------------------------------------------------------------------------------------
1438 // old sources
1439
@@ -1476,7 +1519,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1519
1520 // NEEDED BY: do_tcp...
1521 struct tcpstat tcpstat;
1479 - uint64_t tcps_states[TCP_NSTATES];
1522
1523 // NEEDED BY: do_udp...
1524 struct udpstat udpstat;
@@ -1834,30 +1876,6 @@ int do_freebsd_sysctl_old(int update_every, usec_t dt) {
1876
1877 // --------------------------------------------------------------------
1878
1837 - // see http://net-snmp.sourceforge.net/docs/mibs/tcp.html
1838 - if (likely(do_tcp_sockets)) {
1839 - if (unlikely(GETSYSCTL_BY_NAME("net.inet.tcp.states", tcps_states))) {
1840 - do_tcp_sockets = 0;
1841 - error("DISABLED: ipv4.tcpsock");
1842 - } else {
1843 - if (likely(do_tcp_sockets)) {
1844 - st = rrdset_find_localhost("ipv4.tcpsock");
1845 - if (unlikely(!st)) {
1846 - st = rrdset_create_localhost("ipv4", "tcpsock", NULL, "tcp", NULL, "IPv4 TCP Connections",
1847 - "active connections", 2500, update_every, RRDSET_TYPE_LINE);
1848 -
1849 - rrddim_add(st, "CurrEstab", "connections", 1, 1, RRD_ALGORITHM_ABSOLUTE);
1850 - } else
1851 - rrdset_next(st);
1852 -
1853 - rrddim_set(st, "CurrEstab", tcps_states[TCPS_ESTABLISHED]);
1854 - rrdset_done(st);
1855 - }
1856 - }
1857 - }
1858 -
1859 - // --------------------------------------------------------------------
1860 -
1879 // see http://net-snmp.sourceforge.net/docs/mibs/tcp.html
1880 if (likely(do_tcp_packets || do_tcp_errors || do_tcp_handshake || do_tcpext_connaborts || do_tcpext_ofo || do_tcpext_syscookies || do_ecn)) {
1881 if (unlikely(GETSYSCTL_BY_NAME("net.inet.tcp.stats", tcpstat))){
src/plugin_freebsd.c
+1
@@ -32,6 +32,7 @@ static struct freebsd_module {
32 { .name = "kern.ipc.msq", .dim = "message_queues", .enabled = 1, .func = do_kern_ipc_msq },
33 { .name = "uptime", .dim = "uptime", .enabled = 1, .func = do_uptime },
34 { .name = "net.isr", .dim = "net_isr", .enabled = 1, .func = do_net_isr },
35 + { .name = "net.inet.tcp.states", .dim = "tcp_states", .enabled = 1, .func = do_net_inet_tcp_states },
36
37 // CPU metrics
38 { .name = "kern.cp_times", .dim = "cp_times", .enabled = 1, .func = do_kern_cp_times },
src/plugin_freebsd.h
+1
@@ -25,6 +25,7 @@ extern int do_kern_ipc_shm(int update_every, usec_t dt);
25 extern int do_kern_ipc_msq(int update_every, usec_t dt);
26 extern int do_uptime(int update_every, usec_t dt);
27 extern int do_net_isr(int update_every, usec_t dt);
28 +extern int do_net_inet_tcp_states(int update_every, usec_t dt);
29
30 extern int do_freebsd_sysctl_old(int update_every, usec_t dt);
31