From 82723c67a1a21473c2fdf198886f408b3942a61e Mon Sep 17 00:00:00 2001 From: thiagoftsm Date: Wed, 6 Mar 2024 17:56:10 +0000 Subject: [PATCH 1/2] cleanup_stats: Sync repos --- kernel-collector | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel-collector b/kernel-collector index 7265684..eb20e9b 160000 --- a/kernel-collector +++ b/kernel-collector @@ -1 +1 @@ -Subproject commit 726568437bb1707829ded99299bf389b1cff65a8 +Subproject commit eb20e9b47826d37e8f9620ce992790792512f5ac From f497f99c6a786b7cf5263e77daf7f602568bc3dd Mon Sep 17 00:00:00 2001 From: thiagoftsm Date: Wed, 6 Mar 2024 18:55:51 +0000 Subject: [PATCH 2/2] cleanup_stats: Add satistic data avoiding fill the whole hash table --- src/networkviewer.bpf.c | 76 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 4 deletions(-) diff --git a/src/networkviewer.bpf.c b/src/networkviewer.bpf.c index a5e3448..05b35ab 100644 --- a/src/networkviewer.bpf.c +++ b/src/networkviewer.bpf.c @@ -161,8 +161,6 @@ static __always_inline void set_common_tcp_nv_data(netdata_nv_idx_t *idx, if (data->state > 12) return; - - bpf_map_update_elem(&tbl_nv_socket, idx, data, BPF_ANY); } static __always_inline void set_common_udp_nv_data(netdata_nv_idx_t *idx, @@ -188,8 +186,6 @@ static __always_inline void set_common_udp_nv_data(netdata_nv_idx_t *idx, if (data->state > 12) return; - - bpf_map_update_elem(&tbl_nv_socket, idx, data, BPF_ANY); } /*********************************************************************************** @@ -220,6 +216,10 @@ int BPF_KRETPROBE(netdata_nv_inet_csk_accept_kretprobe) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -245,6 +245,10 @@ int BPF_KPROBE(netdata_nv_tcp_v4_connect_kprobe) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -270,6 +274,10 @@ int BPF_KPROBE(netdata_nv_tcp_v6_connect_kprobe) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -295,6 +303,10 @@ int BPF_KPROBE(netdata_nv_tcp_retransmit_skb_kprobe) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -321,6 +333,10 @@ int BPF_KPROBE(netdata_nv_tcp_cleanup_rbuf_kprobe) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -350,6 +366,10 @@ int BPF_KPROBE(netdata_nv_tcp_set_state_kprobe) data.state = state; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -375,6 +395,10 @@ int BPF_KPROBE(netdata_nv_tcp_sendmsg_kprobe) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -420,6 +444,10 @@ int BPF_KPROBE(netdata_nv_udp_sendmsg_kprobe) netdata_nv_data_t data = { }; set_common_udp_nv_data(&idx, &data, sk, family, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -449,6 +477,10 @@ int BPF_KPROBE(netdata_nv_udp_recvmsg_kprobe) direction = NETDATA_SOCKET_DIRECTION_OUTBOUND | NETDATA_SOCKET_DIRECTION_INBOUND; set_common_udp_nv_data(&idx, &data, sk, family, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -479,6 +511,10 @@ int BPF_PROG(netdata_nv_inet_csk_accept_fexit, struct sock *sk) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -503,6 +539,10 @@ int BPF_PROG(netdata_nv_tcp_v4_connect_fentry, struct sock *sk, struct sockaddr netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -527,6 +567,10 @@ int BPF_PROG(netdata_nv_tcp_v6_connect_fentry, struct sock *sk, struct sockaddr netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -551,6 +595,10 @@ int BPF_PROG(netdata_nv_tcp_retransmit_skb_fentry, struct sock *sk) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -576,6 +624,10 @@ int BPF_PROG(netdata_nv_tcp_cleanup_rbuf_fentry, struct sock *sk, int copied) netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -602,6 +654,10 @@ int BPF_PROG(netdata_nv_tcp_set_state_fentry, struct sock *sk, int state) data.state = state; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -626,6 +682,10 @@ int BPF_PROG(netdata_nv_tcp_sendmsg_fentry, struct sock *sk, struct msghdr *msg, netdata_nv_data_t data = { }; set_common_tcp_nv_data(&idx, &data, sk, family, 0, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -666,6 +726,10 @@ int BPF_PROG(netdata_nv_udp_sendmsg_fentry, struct sock *sk, struct msghdr *msg, netdata_nv_data_t data = { }; set_common_udp_nv_data(&idx, &data, sk, family, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; } @@ -695,6 +759,10 @@ int BPF_PROG(netdata_nv_udp_recvmsg_fentry, struct sock *sk) direction = NETDATA_SOCKET_DIRECTION_OUTBOUND | NETDATA_SOCKET_DIRECTION_INBOUND; set_common_udp_nv_data(&idx, &data, sk, family, direction); + bpf_map_update_elem(&tbl_nv_socket, &idx, &data, BPF_ANY); + + libnetdata_update_global(&nv_ctrl, NETDATA_CONTROLLER_PID_TABLE_ADD, 1); + return 0; }