flameshow


Nameflameshow JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttps://github.com/laixintao/flameshow
SummaryA Terminal Flamegraph Viewer
upload_time2024-01-08 08:00:20
maintainerlaixintao
docs_urlNone
authorlaixintao
requires_python>=3.10,<4.0
licenseGPLv3
keywords terminal golang pprof flamegraph
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Flameshow

[![tests](https://github.com/laixintao/flameshow/actions/workflows/pytest.yaml/badge.svg?branch=main)](https://github.com/laixintao/flameshow/actions/workflows/pytest.yaml)
[![codecov](https://codecov.io/gh/laixintao/flameshow/graph/badge.svg?token=XQCGN9GBL4)](https://codecov.io/gh/laixintao/flameshow)
[![PyPI](https://img.shields.io/pypi/v/flameshow.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/flameshow/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flameshow?logo=python&logoColor=gold)
![PyPI - Downloads](https://img.shields.io/pypi/dm/flameshow)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

Flameshow is a terminal Flamegraph viewer.

![](./docs/flameshow.gif)

## 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`:

```shell
pip install flameshow
```

## Usage

View golang's goroutine dump:

```shell
$ curl http://localhost:9100/debug/pprof/goroutine -o goroutine.out
$ flameshow goroutine.out
```

After entering the TUI, the available actions are listed on Footer:

- <kbd>q</kbd> for quit
- <kbd>j</kbd> <kbd>i</kbd> <kbd>j</kbd> <kbd>k</kbd> or <kbd>←</kbd>
  <kbd>↓</kbd> <kbd>↑</kbd> <kbd>→</kbd> for moving around, and <kbd>Enter</kbd>
  for zoom in, then <kbd>Esc</kbd> for zoom out.
- You can also use a mouse, hover on a span will show it details, and click will
  zoom it.

## 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](https://www.brendangregg.com/flamegraphs.html)

## Development

If you want to dive into the code and make some changes, start with:

```shell
git clone git@github.com:laixintao/flameshow.git
cd flameshow
pip install poetry
poetry install
```

---

This project is proudly powered by
[textual](https://github.com/Textualize/textual).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/laixintao/flameshow",
    "name": "flameshow",
    "maintainer": "laixintao",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "laixintaoo@gmail.com",
    "keywords": "terminal,golang,pprof,flamegraph",
    "author": "laixintao",
    "author_email": "laixintaoo@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/15/72/727012085ebc3f96c21ec6ca3766d3789099a9a38cecf318b4231cba43ab/flameshow-1.1.2.tar.gz",
    "platform": null,
    "description": "# Flameshow\n\n[![tests](https://github.com/laixintao/flameshow/actions/workflows/pytest.yaml/badge.svg?branch=main)](https://github.com/laixintao/flameshow/actions/workflows/pytest.yaml)\n[![codecov](https://codecov.io/gh/laixintao/flameshow/graph/badge.svg?token=XQCGN9GBL4)](https://codecov.io/gh/laixintao/flameshow)\n[![PyPI](https://img.shields.io/pypi/v/flameshow.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/flameshow/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/flameshow?logo=python&logoColor=gold)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/flameshow)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nFlameshow is a terminal Flamegraph viewer.\n\n![](./docs/flameshow.gif)\n\n## Features\n\n- Renders Flamegraphs in your terminal\n- Supports zooming in and displaying percentages\n- Keyboard input is prioritized\n- All operations can also be performed using the mouse.\n- Can switch to different sample types\n\n## Install\n\nFlameshow is written in pure Python, so you can install via `pip`:\n\n```shell\npip install flameshow\n```\n\n## Usage\n\nView golang's goroutine dump:\n\n```shell\n$ curl http://localhost:9100/debug/pprof/goroutine -o goroutine.out\n$ flameshow goroutine.out\n```\n\nAfter entering the TUI, the available actions are listed on Footer:\n\n- <kbd>q</kbd> for quit\n- <kbd>j</kbd> <kbd>i</kbd> <kbd>j</kbd> <kbd>k</kbd> or <kbd>\u2190</kbd>\n  <kbd>\u2193</kbd> <kbd>\u2191</kbd> <kbd>\u2192</kbd> for moving around, and <kbd>Enter</kbd>\n  for zoom in, then <kbd>Esc</kbd> for zoom out.\n- You can also use a mouse, hover on a span will show it details, and click will\n  zoom it.\n\n## Supported Formats\n\nAs far as I know, there is no standard specification for profiles. Different\nlanguages or tools might generate varying profile formats. I'm actively working\non supporting more formats. Admittedly, I might not be familiar with every tool\nand its specific format. So, if you'd like Flameshow to integrate with a tool\nyou love, please feel free to reach out and submit an issue.\n\n- Golang pprof\n- [Brendan Gregg's Flamegraph](https://www.brendangregg.com/flamegraphs.html)\n\n## Development\n\nIf you want to dive into the code and make some changes, start with:\n\n```shell\ngit clone git@github.com:laixintao/flameshow.git\ncd flameshow\npip install poetry\npoetry install\n```\n\n---\n\nThis project is proudly powered by\n[textual](https://github.com/Textualize/textual).\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "A Terminal Flamegraph Viewer",
    "version": "1.1.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/laixintao/flameshow/issues",
        "Homepage": "https://github.com/laixintao/flameshow"
    },
    "split_keywords": [
        "terminal",
        "golang",
        "pprof",
        "flamegraph"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cd657bdb67258ede0dcd5fc0a555a1bf24bb5118d3d48dd37487ee1193a1beb8",
                "md5": "7d7c3dc5570e684aad060ddc0d4d7413",
                "sha256": "fe6891fb8bde309b61237ece9702ddef79e17a4d477dd6c7ee87b049096056fd"
            },
            "downloads": -1,
            "filename": "flameshow-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7d7c3dc5570e684aad060ddc0d4d7413",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 24076,
            "upload_time": "2024-01-08T08:00:18",
            "upload_time_iso_8601": "2024-01-08T08:00:18.325062Z",
            "url": "https://files.pythonhosted.org/packages/cd/65/7bdb67258ede0dcd5fc0a555a1bf24bb5118d3d48dd37487ee1193a1beb8/flameshow-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1572727012085ebc3f96c21ec6ca3766d3789099a9a38cecf318b4231cba43ab",
                "md5": "8a0f7e758b34ca04c89f24f4c9debe44",
                "sha256": "416289a8dfe331fcc33972e4e62c2d5c24b7a33bb666becaea7d00bc833db6aa"
            },
            "downloads": -1,
            "filename": "flameshow-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "8a0f7e758b34ca04c89f24f4c9debe44",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 2294852,
            "upload_time": "2024-01-08T08:00:20",
            "upload_time_iso_8601": "2024-01-08T08:00:20.521770Z",
            "url": "https://files.pythonhosted.org/packages/15/72/727012085ebc3f96c21ec6ca3766d3789099a9a38cecf318b4231cba43ab/flameshow-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-08 08:00:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "laixintao",
    "github_project": "flameshow",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "flameshow"
}
        
Elapsed time: 0.15871s