No description
  • Rust 95.2%
  • Roff 2.4%
  • C 2%
  • Python 0.3%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Florian Schmaus d882321c98 procfs: Swallow InvalidFileFormat when parsing ns/pid, fixing invocation as unprivileged user (#8285)
Summary:
When running below as an unprivileged user, reading /proc/1/ns/pid may yield an empty string due to permissions, resulting in an InvalidFileFormat error instead of an IoError. Fix below invocations as unprivileged user by ignoring InvalidFileFormat in read_all_pid_info_from_path (similar to EACCES) so that execution does not abort early when encountering an inaccessible process namespace.

Pull Request resolved: https://github.com/facebookincubator/below/pull/8285

Reviewed By: brianc118

Differential Revision: D117393830

Pulled By: kev-common

fbshipit-source-id: def0ff662ca4e75ff18f730602be4a414b2d8a55
2026-08-26 11:15:50 -07:00
.github/workflows Update crate tempfile 3.15 -> 3.22 (#8262) 2025-09-13 13:50:34 -07:00
below procfs: Swallow InvalidFileFormat when parsing ns/pid, fixing invocation as unprivileged user (#8285) 2026-08-26 11:15:50 -07:00
contrib/grafana Remove unused imports (F401) 2026-06-03 09:22:42 -07:00
docs Adding collectd and sysstat tool to comparsion docs (#8259) 2025-08-07 08:13:36 -07:00
etc Setup log and store dir with systemd (#8241) 2025-02-24 08:00:00 -08:00
img Add below logos 2021-09-21 12:07:29 -07:00
scripts refactor: Dockerfile support (#8251) 2025-07-10 11:26:40 -07:00
.gitattributes Don't include generated C files in language stats (#8090) 2021-06-15 14:41:06 -07:00
.gitignore Fix build for BPF components (#8073) 2021-01-11 16:14:29 -08:00
Cargo.lock Fix RUSTSEC-2025-0024: update dependencies for below 2025-10-02 02:37:01 -07:00
Cargo.toml Add shared below-vmlinux crate for BPF programs 2026-08-12 19:39:43 -07:00
clippy.toml disallow use of rsa::pkcs1v15 2026-04-17 10:06:54 -07:00
CODE_OF_CONDUCT.md Initial commit 2020-02-25 15:50:19 -08:00
CONTRIBUTING.md Rename master -> main 2021-09-14 15:24:08 -07:00
Dockerfile refactor: Dockerfile support (#8251) 2025-07-10 11:26:40 -07:00
LICENSE Initial commit 2020-02-25 15:50:19 -08:00
README.md Document installation on Amazon Linux (#8267) 2025-12-15 06:52:59 -08:00
rustfmt.toml rustfmt update 2025-10-22 15:17:54 -07:00

Below

below is an interactive tool to view and record historical system data. It has support for:

  • information regarding hardware resource utilization
  • viewing the cgroup hierarchy
  • cgroup and process information
  • pressure stall information (PSI)
  • record mode to record system data
  • replay mode to replay historical system data
  • live mode to view live system data
  • dump subcommand to report script-friendly information (eg JSON, CSV, OpenMetrics, etc.)
  • snapshot subcommand to create a replayable snapshot file of historical system data

below does not have support for cgroup1.

The name "below" stems from the fact that the below developers rejected many of atop's design and style decisions.

Demo

Installing

Fedora

below is packaged in Fedora as of Fedora 34, and can be installed with:

sudo dnf install below

Optionally, the systemd service for persistent data collection can also be enabled with:

sudo systemctl enable --now below

Alpine Linux

below is packaged in Alpine Linux - it's available in v3.17+ and Edge. It can be installed with:

sudo apk add below

Optionally, the OpenRC service for persistent data collection can also be enabled with:

sudo rc-service below start
sudo rc-update add below

Gentoo Linux

below is available in the sys-process/below package and can be installed with emerge:

sudo emerge sys-process/below

Amazon Linux

below is packaged in Amazon Linux as of AL2023.9, and can be installed with:

sudo dnf install below

Installing from source

First, install dependencies listed in building.md.

$ cargo install below
$ below --help

For convenience, we also provide a Dockerfile and pre-built images on Docker Hub. See docker.md for how to use them.

Quickstart

Live view of system:

$ sudo below live

Run recording daemon:

$ sudo cp ~/.cargo/bin/below /bin/below  # if using cargo-install
$ sudo cp etc/below.service /etc/systemd/system
$ sudo systemctl daemon-reload
$ sudo systemctl start below

Replay historical data:

$ below replay -t "3m ago"

Integration with Prometheus/Grafana

below has basic support for Prometheus/Grafana through the dump interface.

See contrib/grafana/ for more details.

Comparison with alternative tools

See comparison.md for a feature comparison with alternative tools.

Contributing

See the CONTRIBUTING file for how to help out.

License

See LICENSE file.