Flameshow
Flameshow is a terminal Flamegraph viewer.
Features
- Renders Flamegraphs in your terminal
- Supports zooming in and displaying percentages
- Keyboard input is prioritized
- All operations can also be performed using the mouse.
- Can switch to different sample types
Install
Flameshow is written in pure Python, so you can install via pip:
pip install flameshow
But you can also run it through nix:
nix run github:laixintao/flameshow
# Or if you want to install it imperatively:
nix profile install github:laixintao/flameshow
Usage
View golang's goroutine dump:
$ curl http://localhost:9100/debug/pprof/goroutine -o goroutine.out
$ flameshow goroutine.out
After entering the TUI, the available actions are listed on Footer:
- q for quit
- h j k l or ← ↓ ↑ → for moving around, and Enter for zoom in, then Esc for zoom out.
- You can also use a mouse, hover on a span will show it details, and click will zoom it.
Flamegraph TUI
This project is built on flamegraph-textual.
The flamegraph renderer is available as a separate package:
pip install flamegraph-textual
Supported Formats
As far as I know, there is no standard specification for profiles. Different languages or tools might generate varying profile formats. I'm actively working on supporting more formats. Admittedly, I might not be familiar with every tool and its specific format. So, if you'd like Flameshow to integrate with a tool you love, please feel free to reach out and submit an issue.
- Golang pprof
- Brendan Gregg's Flamegraph
- Python Austin
- Speedscope (evented and sampled profiles)
- Google Trace Event format
Development
If you want to dive into the code and make some changes, start with:
git clone git@github.com:laixintao/flameshow.git
cd flameshow
pip install poetry
poetry install
This project is proudly powered by textual.
Metadata
Release files for flameshow 1.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flameshow-1.1.5.tar.gz | 2.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flameshow-1.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.3 MB
Release files / flameshow-1.1.5.tar.gz
| Download URL | flameshow-1.1.5.tar.gz |
|---|---|
| Size | 2.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b7a907338d0a3f8a71d46b90449d8603633478442d05a806e90576a7de59732
|
|
BLAKE2b-256 checksum How to use checksums |
ba564584514de07fb5368c60c3d08d43ed8b19ec8691bf2bbb03af2524114cf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.3 Linux/6.17.0-1022-azure
|
Release files / flameshow-1.1.5-py3-none-any.whl
| Download URL | flameshow-1.1.5-py3-none-any.whl |
|---|---|
| Size | 4.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c2db83f6a8c99d7a178cb875d34fa366d92e857ef7ffc0d3e061eb8054f04b84
|
|
BLAKE2b-256 checksum How to use checksums |
0771ce2e6f3991de2c9c1067eaad4dd015e67f254b58395cc023280e618d3be1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.3 Linux/6.17.0-1022-azure
|