[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73194":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":33,"discoverSource":34},73194,"bpftop","jfernandez\u002Fbpftop","jfernandez","bpftop provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program.","https:\u002F\u002Fbpftop.sh",null,"C",2685,128,144,4,0,2,3,10,6,28.33,"Apache License 2.0",false,"main",[26,27,28,29],"bpf","cli","ebpf","linux","2026-06-12 02:03:10","# bpftop\n\n\u003Cimg src=\"bpftop-logo.png\" width=\"75\" height=\"75\">\n\n`bpftop` provides a dynamic real-time view of running eBPF programs. It displays the average runtime, events per second, and estimated total CPU % for each program. It also provides graphical views of these statistics over time. This tool minimizes overhead by enabling performance statistics only while it is active.\n\n![bpftop](bpftop.gif)\n\n## Installation\n\nThe install script downloads the latest release for your architecture (x86_64 or aarch64), verifies its SHA-256 against the digest published by GitHub, and installs it to `~\u002F.local\u002Fbin` (or `\u002Fusr\u002Flocal\u002Fbin` when run as root):\n\n```bash\ncurl -fsSL https:\u002F\u002Fbpftop.sh\u002Finstall | sh\n```\n\nPass `--version \u003Ctag>` to pin a specific release or `--bin-dir \u003Cpath>` to choose the install directory. Run the script with `--help` to see all options.\n\nOr install via your distribution's package manager:\n\n[![Packaging status](https:\u002F\u002Frepology.org\u002Fbadge\u002Fvertical-allrepos\u002Fbpftop.svg)](https:\u002F\u002Frepology.org\u002Fproject\u002Fbpftop\u002Fversions)\n\n### Fedora\n\nYou can install `bpftop` from the [official repositories](https:\u002F\u002Fsrc.fedoraproject.org\u002Frpms\u002Fbpftop) using [dnf](https:\u002F\u002Fdnf.readthedocs.io\u002Fen\u002Flatest\u002F):\n\n```bash\nsudo dnf install bpftop\n```\n\n### Arch Linux\n\nYou can install `bpftop` from the [official repositories](https:\u002F\u002Farchlinux.org\u002Fpackages\u002Fextra\u002Fx86_64\u002Fbpftop\u002F) using [pacman](https:\u002F\u002Fwiki.archlinux.org\u002Ftitle\u002Fpacman):\n\n```bash\nsudo pacman -S bpftop\n```\n\n### Nix\n\nInstall `bpftop` from nixpkgs:\n\n```bash\nnix profile install nixpkgs#bpftop\n```\n\n## Features\n\n- **Real-time monitoring**: Displays a list of all running eBPF programs with ID, type, and name\n- **Performance metrics**: Shows period and total average runtime, events per second, and estimated CPU utilization\n- **Interactive navigation**: Navigate using arrow keys (↑\u002F↓) or vim-style keys (j\u002Fk)\n- **Time-series graphs**: Press Enter on a program to view graphical representations of performance metrics over time\n- **Program filtering**: Press 'f' to filter programs by name or type\n- **Column sorting**: Press 's' to sort by different columns (ascending\u002Fdescending)\n- **Process information**: Displays process names and PIDs that reference each eBPF program\n- **Scrollbar navigation**: Automatically shows scrollbar when the program list exceeds terminal height\n- **Customizable refresh rate**: Set update interval with `-d\u002F--delay` option (1-3600 seconds)\n- **Backward compatibility**: Supports Linux kernels from version 5.8+ (older kernels via procfs)\n- **Minimal overhead**: Enables statistics gathering only while active, automatically disables on exit\n- **Logging integration**: Logs to systemd journal when available\n\n## Prerequisites\n\n- `bpftop` requires `sudo` privileges to run.\n- Linux kernel version 5.8 or later (older kernels supported via procfs fallback)\n- The binary is dynamically linked to `libz` and `libelf`, so these libraries must be present on the systems where you intend to run `bpftop`.\n- For logging functionality: systemd\u002Fjournald (optional, will gracefully fallback if not available)\n\n## Usage\n\nRun the following command to start `bpftop` on your host:\n\n```bash\nsudo bpftop\n```\n\n### Command-line Options\n\n- `-d, --delay \u003CSECONDS>`: Set refresh interval (1-3600 seconds, default: 1)\n- `-h, --help`: Show help information\n- `-V, --version`: Show version information\n\nExamples:\n```bash\n# Start with default 1-second refresh\nsudo bpftop\n\n# Update every 2 seconds\nsudo bpftop -d 2\n\n# Update every 5 seconds\nsudo bpftop --delay 5\n```\n\n### Interactive Controls\n\nOnce running, use these keyboard shortcuts:\n\n**Navigation:**\n- `↑\u002F↓` or `k\u002Fj`: Navigate up\u002Fdown through the program list\n- `Enter`: Switch to graphical view for the selected program\n- `q`: Quit the application\n\n**Features:**\n- `f`: Filter programs by name or type\n- `s`: Sort programs by different columns (use arrow keys to select column and direction)\n\n**In graph view:**\n- `Enter` or `q`: Return to the main program list\n\n### Viewing Process Information\n\nWhen you select a program, `bpftop` displays additional information including:\n- Process names and PIDs that reference the selected eBPF program\n- Detailed performance metrics and graphs\n\n### Logging\n\n`bpftop` logs operational information to the systemd journal when available. You can view these logs using:\n\n```bash\njournalctl _COMM=bpftop\n```\n\nCommon log entries include:\n- Application startup and shutdown\n- Kernel version information\n- BPF statistics enablement status\n- Error conditions and debugging information\n\n## Related links\n\n* [Announcement blog post](https:\u002F\u002Fnetflixtechblog.com\u002Fannouncing-bpftop-streamlining-ebpf-performance-optimization-6a727c1ae2e5)\n* [LWN.net](https:\u002F\u002Flwn.net\u002FArticles\u002F963767\u002F)\n* [The New Stack](https:\u002F\u002Fthenewstack.io\u002Fnetflix-releases-bpftop-an-ebpf-based-application-monitor\u002F)\n\n## How it works\n\n`bpftop` uses the [BPF_ENABLE_STATS](https:\u002F\u002Felixir.bootlin.com\u002Flinux\u002Fv6.6.16\u002Fsource\u002Finclude\u002Fuapi\u002Flinux\u002Fbpf.h#L792) BPF syscall command to enable global eBPF runtime statistics gathering, which is disabled by default to reduce performance overhead. It collects these statistics every second, calculating the average runtime, events per second, and estimated CPU utilization for each eBPF program within that sample period. This information is displayed in a top-like tabular format. Once `bpftop` terminates, it disables the statistics-gathering function by deleting the file descriptor returned by `BPF_ENABLE_STATS`.\n\n## Building from source\n\n### Prerequisites\nInstall required dependencies:\n```bash\n# Ubuntu\u002FDebian\nsudo apt-get install -y zlib1g-dev libelf-dev clang libbpf-dev\n\n# Fedora\u002FRHEL\nsudo dnf install -y zlib-devel elfutils-libelf-devel clang libbpf-devel\n```\n\n### Build Instructions\n\n```bash\n# Development build\ncargo build\n\n# Release build\ncargo build --release\n```\n\nAlternatively, the repository ships a Nix flake with a pinned dev shell that includes `clang`, `libbpf`, and the Rust toolchain:\n\n```bash\nnix develop\ncargo build --release\n```\n\n## Troubleshooting\n\n### Common Issues\n\n**\"This program must be run as root\"**\n- Ensure you're running with `sudo` privileges. eBPF statistics collection requires root access.\n\n**No programs displayed**\n- This is normal if no eBPF programs are currently loaded on your system\n- Try loading an eBPF program (e.g., using `bpftrace`, `bcc-tools`, or other eBPF utilities) to see them in bpftop\n\n**Terminal display issues**\n- Ensure your terminal supports ANSI colors and has sufficient size\n- Minimum recommended terminal size: 80x24 characters\n\n**Missing libraries error**\n- Install the required system dependencies: `libz` and `libelf`\n- On Ubuntu\u002FDebian: `sudo apt-get install zlib1g-dev libelf-dev`\n\n### Logging and Debugging\n\nView application logs:\n```bash\n# View all bpftop logs\njournalctl _COMM=bpftop\n\n# Follow logs in real-time\njournalctl _COMM=bpftop -f\n\n# View logs from last boot\njournalctl _COMM=bpftop -b\n```\n\nThe logs include information about:\n- Application startup and shutdown\n- Kernel compatibility checks\n- BPF statistics enablement method used\n- Any errors or warnings encountered\n\n## Project History\n\nThis repository was formerly maintained by Netflix. It is now an independent project maintained by Jose Fernandez. Netflix is no longer affiliated with this tool's development.\n","bpftop 是一个用于实时监控运行中的 eBPF 程序的工具，它能够显示每个程序的平均运行时间、每秒事件数以及估计的总 CPU 使用率。该项目采用 C 语言编写，具有交互式导航和时间序列图表功能，支持按名称或类型过滤程序，并可以自定义刷新频率。bpftop 通过仅在活动时启用性能统计来最小化开销，适用于需要对 eBPF 程序进行高效监控和性能分析的 Linux 环境中使用。","2026-06-11 03:44:28","high_star"]