process-bandwidth is an ebpf based program which focus on process's network bandwidth (include each connection). it provides a clean terminal UI based on tview (as a CLI tool), and provides a simple API to export data for prometheus (as a long-running task).
in top mode, you can open/close settings by press F4, exit by press ESC or CTRL+C, and pause/resume the update by press F5, and you can click on the table header line (currently only support In, Out, Total) to change the sort column and order
also you can use tab to change focus between process's table、connection's table and filter input box, and you can use up/down keys to
scroll in the table, press the Enter key to choose current process or connection
linux kernel version >= 3.10
please download through GitHub's release page, or you can build your own by just run make under the root directory of the project
- GetConnections.ConnectionInfo.LocalPort=9091 or Name=java
- ConnectionInfo.LocalPort = 2181 or ConnectionInfo.LocalPort = 9091
Note: filter processes and connections at the same time it's only meaningful that you filter processes based on connection and you want see connections only satisfies the filter for process. so we just use
orto concat two (or more) filter, but we know that one is for process and another is for connection.
- GetConnections.ConnectionInfo.LocalPort = 2181 or ConnectionInfo.LocalPort = 2181
filter function implement based on uni-filter, see more document here
- tview
- asciigraph
- I made a copy to support colors in tview's TextView component
- ebpf
- eCapture

