netdata / kernel-collector

Linux Kernel eBPF Collectors
61 stars 15 forks source link

Add Limits for socket #344

Closed thiagoftsm closed 1 year ago

thiagoftsm commented 1 year ago
Summary

This PR is adding another PID level that will allow users to monitor metrics independent of PID. The main goal of this PR is to create a way to summarize of socket information. This PR also fix socket binary that was generating unexpected result for loopback and zero ports and addresses.

Test Plan
  1. Get binaries according your LIBC from this link and extract them inside a directory. You can also get everything for glibc here.

  2. Extract them running:

    $ for i in `ls *.zip`; do unzip $i; rm .gitkeep ; rm $i; done
    $ for i in `ls *.xz`; do tar -xf $i; rm $i* ; done
  3. Compile branch an run the following tests:

    # make clean; make tester
    # for i in `seq 0 3`; do ./kernel/legacy_test --netdata-path ../artifacts --content --iteration 2 --pid $i --log-path file_pid$i.txt; done
  4. Every test should ends with Success, unless you do not have a specific target (function) available.

Additional information

This PR was tested on:

Linux Distribution Environment Kernel Version Real Parent Parent All Pid Without PID
Slackware Current Bare metal 6.1.42 slackware_6_1_pid0.txt slackware_6_1_pid1.txt slackware_6_1_pid2.txt slackware_6_1_pid3.txt
Arch Linux Libvirt 6.4.7-arch1-1 arch_6_4_pid0.txt arch_6_4_pid1.txt arch_6_4_pid2.txt arch_6_4_pid3.txt
Ubuntu 22.04 Libvirt 5.15.0-76-generic ubuntu_5_15_pid0.txt ubuntu_5_15_pid1.txt ubuntu_5_15_pid2.txt ubuntu_5_15_pid3.txt
Alma 9 Libvirt 5.14.0-284.18.1.el9_2.x86_64 alma9_5_14_pid0.txt alma9_5_14_pid1.txt alma9_5_14_pid2.txt alma9_5_14_pid3.txt
Debian 11 Libvirt 5.10.179-3 debian_5_10_pid0.txt debian_5_10_pid1.txt debian_5_10_pid2.txt debian_5_10_pid3.txt
Debian 10 libvirt 4.19.269-1 debian_4_19_pid0.txt debian_4_19_pid1.txt debian_4_19_pid2.txt debian_4_19_pid3.txt
Alma 8.6 libvirt 4.18.0-477.15.1.el8_8.x86_64 alma_4_18_pid0.txt alma_4_18_pid1.txt alma_4_18_pid2.txt alma_4_18_pid3.txt
Ubuntu 18.04 libvirt 4.15.0-208-generic ubuntu_4_15_pid0.txt ubuntu_4_15_pid1.txt ubuntu_4_15_pid2.txt ubuntu_4_15_pid3.txt
Slackware Current Qemu 4.14.290 slackware_4_14_pid0.txt slackware_4_14_pid1.txt slackware_4_14_pid2.txt slackware_4_14_pid3.txt
CentOS 7.9 libvirt 3.10 centos_3_10_pid0.txt centos_3_10_pid1.txt centos_3_10_pid2.txt centos_3_10_pid3.txt