Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pyroscope-io/pyroscope
Continuous Profiling Platform. Debug performance issues down to a single line of code
https://github.com/pyroscope-io/pyroscope
continuous-profiling developer-tools devops find-bottlenecks golang hacktoberfest linux monitoring observability performance profiling pyroscope python ruby
Last synced: about 1 month ago
JSON representation
Continuous Profiling Platform. Debug performance issues down to a single line of code
- Host: GitHub
- URL: https://github.com/pyroscope-io/pyroscope
- Owner: grafana
- License: agpl-3.0
- Created: 2020-12-31T05:47:19.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T08:51:28.000Z (5 months ago)
- Last Synced: 2024-04-14T14:09:17.331Z (5 months ago)
- Topics: continuous-profiling, developer-tools, devops, find-bottlenecks, golang, hacktoberfest, linux, monitoring, observability, performance, profiling, pyroscope, python, ruby
- Language: C
- Homepage: https://grafana.com/oss/pyroscope/
- Size: 127 MB
- Stars: 9,361
- Watchers: 88
- Forks: 556
- Open Issues: 286
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
- Governance: GOVERNANCE.md
Awesome Lists containing this project
- awesome-starts - pyroscope-io/pyroscope - 🔥 Continuous Profiling Platform 🔥 Debug performance issues down to a single line of code (Go)
- awesome-profiling - Pyroscope - Pyroscope is an open source continuous profiling platform. (3. Application)
- awesome-list - Pyroscope - Pyroscope is an open source continuous profiling platform. (Debugging & Profiling & Tracing / For Python)
README
[![ci](https://github.com/grafana/pyroscope/actions/workflows/test.yml/badge.svg)](https://github.com/grafana/pyroscope/actions/workflows/test.yml)
[![JS Tests Status](https://github.com/grafana/pyroscope/workflows/JS%20Tests/badge.svg)](https://github.com/grafana/pyroscope/actions?query=workflow%3AJS%20Tests)
[![Go Report](https://goreportcard.com/badge/github.com/grafana/pyroscope)](https://goreportcard.com/report/github.com/grafana/pyroscope)
[![License: AGPLv3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fgrafana%2Fpyroscope.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fgrafana%2Fpyroscope?ref=badge_shield)
[![Latest release](https://img.shields.io/github/release/grafana/pyroscope.svg)](https://github.com/grafana/pyroscope/releases)
[![DockerHub](https://img.shields.io/docker/pulls/grafana/pyroscope.svg)](https://hub.docker.com/r/grafana/pyroscope)
[![GoDoc](https://godoc.org/github.com/grafana/pyroscope?status.svg)](https://godoc.org/github.com/grafana/pyroscope)### 🌟 What is Grafana Pyroscope?
Grafana Pyroscope is an open source continuous profiling platform. It will help you:
* Find performance issues and bottlenecks in your code
* Use high-cardinality tags/labels to analyze your application
* Resolve issues with high CPU utilization
* Track down memory leaks
* Understand the call tree of your application
* Auto-instrument your code to link profiling data to traces## 🔥 [Pyroscope Live Demo](https://play.grafana.org/a/grafana-pyroscope-app/)
[![Pyroscope GIF Demo](https://user-images.githubusercontent.com/23323466/143324845-16ff72df-231e-412d-bd0a-38ef2e09cba8.gif)](https://demo.pyroscope.io/)
## 🎉 Features
* Minimal CPU overhead
* Horizontally scalable
* Efficient compression, low disk space requirements
* Can handle high-cardinality tags/labels
* Calculate the performance "diff" between various tags/labels and time periods
* Advanced analysis UI## 💻 Quick Start: Run Pyroscope Locally
### Homebrew
```sh
brew install pyroscope-io/brew/pyroscope
brew services start pyroscope
```### Docker
```sh
docker run -it -p 4040:4040 grafana/pyroscope
```For more documentation on how to configure Pyroscope server, see [our server documentation](https://grafana.com/docs/pyroscope/latest/configure-server/).
## Send data to server via Pyroscope agent (language specific)
For more documentation on how to add the Pyroscope agent to your code, see the [agent documentation](https://grafana.com/docs/pyroscope/latest/configure-client/) on our website or find language specific examples and documentation below:
Golang
Documentation
Examples
Java
Documentation
Examples
Python
Documentation
Examples
Ruby
Documentation
Examples
Node.js
Documentation
Examples
Dotnet
Documentation
Examples
eBPF
Documentation
Examples
Rust
Documentation
Examples
## Deployment Diagram
![deployment_diagram](https://grafana.com/media/docs/pyroscope/pyroscope_client_server_diagram.png)
## Documentation
For more information on how to use Pyroscope with other programming languages, install it on Linux, or use it in production environment, check out our documentation:
* [Getting Started](https://grafana.com/docs/pyroscope/latest/get-started/)
* [Deployment Guide](https://grafana.com/docs/pyroscope/latest/deploy-kubernetes/)
* [Pyroscope Architecture](https://grafana.com/docs/pyroscope/latest/reference-pyroscope-architecture/)## Downloads
You can download the latest version of pyroscope for macOS, linux and Docker from our [Releases page](https://github.com/grafana/pyroscope/releases).
## [Supported Languages][supported languages]
Our documentation contains the most recent list of [supported languages] and also an overview over what [profiling types are supported per language][profile-types-languages].
Let us know what other integrations you want to see in [our issues](https://github.com/grafana/pyroscope/issues?q=is%3Aissue+is%3Aopen+label%3Anew-profilers) or in [our slack](https://slack.grafana.com).
[supported languages]: https://grafana.com/docs/pyroscope/latest/configure-client/
[profile-types-languages]: https://grafana.com/docs/pyroscope/latest/view-and-analyze-profile-data/profiling-types/#available-profiling-types## Credits
Pyroscope is possible thanks to the excellent work of many people, including but not limited to:
* Brendan Gregg — inventor of Flame Graphs
* Julia Evans — creator of rbspy — sampling profiler for Ruby
* Vladimir Agafonkin — creator of flamebearer — fast flame graph renderer
* Ben Frederickson — creator of py-spy — sampling profiler for Python
* Adam Saponara — creator of phpspy — sampling profiler for PHP
* Alexei Starovoitov, Brendan Gregg, and many others who made BPF based profiling in Linux kernel possible
* Jamie Wong — creator of speedscope — interactive flame graph visualizer## Contributing
To start contributing, check out our [Contributing Guide](docs/internal/contributing/README.md)
### Thanks to the contributors of Pyroscope!
[//]: contributor-faces