{"id":15190165,"url":"https://github.com/ivlyth/process-bandwidth","last_synced_at":"2025-10-27T13:30:32.075Z","repository":{"id":65184804,"uuid":"527202887","full_name":"Ivlyth/process-bandwidth","owner":"Ivlyth","description":"an ebpf based program which focus on process's network bandwidth, like Nethogs but provides every connection's bandwidth as well, and even terminal graph","archived":false,"fork":false,"pushed_at":"2022-11-16T15:30:20.000Z","size":1926,"stargazers_count":31,"open_issues_count":5,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T05:41:17.844Z","etag":null,"topics":["cli","ebpf","nethogs","process-bandwidth"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ivlyth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-21T12:40:47.000Z","updated_at":"2025-01-18T08:13:36.000Z","dependencies_parsed_at":"2023-01-07T10:01:02.497Z","dependency_job_id":null,"html_url":"https://github.com/Ivlyth/process-bandwidth","commit_stats":null,"previous_names":[],"tags_count":3,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ivlyth%2Fprocess-bandwidth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ivlyth%2Fprocess-bandwidth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ivlyth%2Fprocess-bandwidth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ivlyth%2Fprocess-bandwidth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ivlyth","download_url":"https://codeload.github.com/Ivlyth/process-bandwidth/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238497656,"owners_count":19482295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","ebpf","nethogs","process-bandwidth"],"created_at":"2024-09-27T20:05:30.501Z","updated_at":"2025-10-27T13:30:26.651Z","avatar_url":"https://github.com/Ivlyth.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"`process-bandwidth` is an ebpf based program which focus on process's network bandwidth (include each connection).\nit provides a clean terminal UI based on [tview](https://github.com/rivo/tview) (as a CLI tool), and provides a \nsimple API to export data for prometheus (as a long-running task).\n\n\n### Screenshots\n![screenshot-top](./screenshots/pb-v0.3.1.png)\n![screenshot-options](./screenshots/pb-v0.3.1-optons.png)\n\n### Usage\nin `top` mode, you can open/close settings by press `F4`, exit by press `ESC` or CTRL+C, and pause/resume the update by \npress `F5`, and you can click on the table header line (currently only support `In`, `Out`, `Total`) to change the sort \ncolumn and order \n\nalso 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  \nscroll in the table, press the Enter key to choose current process or connection\n\n### Requirements\nlinux kernel version \u003e= 3.10\n\n### Installation\nplease download through GitHub's release page, or you can build your own by just run `make` under the root \ndirectory of the project\n\n### Filter\n\n##### filter processes (default mode)\n- GetConnections.ConnectionInfo.LocalPort=9091 or Name=java\n\n##### filter connections (you should check the Connes and uncheck the Process)\n- ConnectionInfo.LocalPort = 2181 or ConnectionInfo.LocalPort = 9091\n\n##### filter both (you should check the both)\n\u003e Note: filter processes and connections at the same time it's only meaningful that you filter processes based on connection\nand you want see connections only satisfies the filter for process. so we just use `or` to concat two (or more) filter,\nbut we know that one is for process and another is for connection. \n\n- GetConnections.ConnectionInfo.LocalPort = 2181 or ConnectionInfo.LocalPort = 2181\n\n\u003e filter function implement based on [uni-filter](https://github.com/Ivlyth/uni-filter), see more document [here](https://github.com/Ivlyth/uni-filter/blob/main/README.md)\n\n## Thanks\n\n- [tview](https://github.com/rivo/tview)\n- [asciigraph](https://github.com/guptarohit/asciigraph)\n  - I made a [copy](https://github.com/Ivlyth/process-bandwidth/blob/main/pkg/asciigraph) to support colors in tview's TextView component\n- [ebpf](https://github.com/cilium/ebpf)\n- [eCapture](https://github.com/ehids/ecapture)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivlyth%2Fprocess-bandwidth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivlyth%2Fprocess-bandwidth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivlyth%2Fprocess-bandwidth/lists"}