{"id":37168291,"url":"https://github.com/rafa-dot-el/gonetmon","last_synced_at":"2026-01-14T19:53:34.921Z","repository":{"id":206688944,"uuid":"717444229","full_name":"rafa-dot-el/gonetmon","owner":"rafa-dot-el","description":"A minimalist Golang Network Monitor for GNU/Linux that follows the UNIX philosophy.","archived":false,"fork":false,"pushed_at":"2023-11-11T23:11:24.000Z","size":53,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-21T06:43:13.552Z","etag":null,"topics":["golang-application","network","network-analysis","network-tools"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rafa-dot-el.png","metadata":{"files":{"readme":"README.org","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-11T14:07:18.000Z","updated_at":"2023-11-13T19:02:26.000Z","dependencies_parsed_at":"2024-06-21T05:49:45.898Z","dependency_job_id":"4b2a9773-6a62-443f-88c3-1881572ed627","html_url":"https://github.com/rafa-dot-el/gonetmon","commit_stats":null,"previous_names":["rafa-dot-el/gonetmon"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/rafa-dot-el/gonetmon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafa-dot-el%2Fgonetmon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafa-dot-el%2Fgonetmon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafa-dot-el%2Fgonetmon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafa-dot-el%2Fgonetmon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rafa-dot-el","download_url":"https://codeload.github.com/rafa-dot-el/gonetmon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafa-dot-el%2Fgonetmon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28433456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["golang-application","network","network-analysis","network-tools"],"created_at":"2026-01-14T19:53:34.191Z","updated_at":"2026-01-14T19:53:34.907Z","avatar_url":"https://github.com/rafa-dot-el.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"#+Title: GoNetMon\n\nA minimalist Golang Network Monitor for GNU/Linux that follows the UNIX philosophy.\n\n* Example usage\nGiven the minimalist UNIX approach, =GNM= output can be stripped down to an\neasy to parse and focused output. The example below covers monitoring only the\nstatistics about the amount of bytes for the received packet.\n\n#+begin_src bash\ngnm -transfer -hideNetworkInterface -only-rx wlp5s0\n#+end_src\n\n#+begin_example\nData 374.0 b/s\nData 74.0 b/s\nData 161.0 b/s\nData 1.8 kb/s\nData 208.0 b/s\nData 807.0 b/s\nData 131.0 b/s\nData 689.2 kb/s\nData 407.0 b/s\nData 413.0 b/s\nData 937.0 b/s\n#+end_example\n\n** Plot\nWhen running it using a single metric (Packet count, Bytes transfer or Packets\ndropped) and with a single statistic (RX or TX), adding the flag =-plot= will\nrender a terminal plot of the given statistic.\n\nThe following example shows the received packet count each second for the last\nminute and plots it on the terminal.\n\n#+begin_src bash\ngnm -count -hideNetworkInterface -only-rx -plot -output-frequency 1 wlp5s0\n#+end_src\n\n[[./plot.png]]\n\n* Installation\n** Binaries\n[[https://github.com/rafa-dot-el/gonetmon/releases][On the releases page]] you can find the last compiled releases.\n\n** Docker\nImages are tagged based on the git tag but also the =latest= tag is available\n\n#+begin_src bash\ndocker run -it rafadotel/gonetmon\n#+end_src\n\nwill download and execute the latest version\n\n#+begin_example\n# docker run -it rafadotel/gonetmon\n#+end_example\n\n** Nixos\nThis repository uses flakes so can be installed easily within a Nixos + Flakes setup.\n\n** Using Go tooling\nThis project uses standard Golang tooling, so it can be installed with:\n#+begin_src bash\ngo install -v github.com/rafa-dot-el/gonetmon@latest\n#+end_src\n\n* Running\n\n=GNM= is self explanatory and running it with =--help= will show the relevant information:\n\n#+begin_src bash :results output verbatim\ngnm --help\n#+end_src\n\n#+begin_example\nUsage: gnm [options] \u003cnetwork-interface\u003e\nrepository: https://github.com/rafa-dot-el/gonetmon\nOptions:\n  -all\n        Show all network link statistics\n  -count\n        Show statistics about packet count\n  -dropped\n        Show statistics about dropped packets\n  -hideNetworkInterface\n        Don't print the network interface name\n  -only-rx\n        Show only received packets statistics\n  -only-tx\n        Show only sent packets statistics\n  -output-frequency int\n        Output frequency in seconds (output will be averaged to the interval) (default 5)\n  -plot\n        Plot the current statistics in a chart, only allows one statistic (RX or TX) and one metric (count/transfer/drops)\n  -transfer\n        Show statistics about total bytes transferred\n#+end_example\n\n\n* Build\nIt uses standard =Golang= tooling, to build just run\n#+begin_src bash\ngo build -o gnm cmd/gnm/main.go\n#+end_src\n\n** Release\nReleases are executed using =gorelease=:\n#+begin_src bash\ngoreleaser release --snapshot --clean\n#+end_src\n\n* Hacking\nThis project uses =nix= and =direnv=, if you have these tools installed then you\njust need to run\n\n#+begin_src bash\ndirenv allow\n#+end_src\n\nand\n\n#+begin_src bash\nnix develop\n#+end_src\n\nThese commands are enough to give you a development environment.\n\n* Disclaimer\n\nThis or previous program is for Educational purpose ONLY. Do not use it without\npermission. The usual disclaimer applies, especially the fact that me (Rafa-dot-el)\nis not liable for any damages caused by direct or indirect use of the\ninformation or functionality provided by these programs. The author or any\nInternet provider bears NO responsibility for content or misuse of these\nprograms or any derivatives thereof. By using these programs you accept the fact\nthat any damage (dataloss, system crash, system compromise, etc.) caused by the\nuse of these programs is not Rafa-dot-el's responsibility.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafa-dot-el%2Fgonetmon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frafa-dot-el%2Fgonetmon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frafa-dot-el%2Fgonetmon/lists"}