Pyroscope consists of 2 core components:
- webapp, mostly JS code, UI for the web application
- go code, this is all the backend code including profiling code and the storage engine.
Used as a collection of shortcuts, e.g
make build or
docker-compose examples for integrations with different languages.
Main place for the go code. We use golang-standards/project-layout as the standard for where different parts of the system should go. See Style Guide for more information on various style guides we use.
Code that does the actual profiling.
pyroscope exec. Mostly code related to command line interface.
Server related code, mostly HTTP controllers.
Storage code. Heavy on various tree-like data structures, low level database things.
Place for command line interface initialization code.
Place where we define the developer dependencies for go code. Kind of like
devDependencies, but for Go.
This is where the webapp lives.
Location for various helper programs / scripts.
Helper code / files we use to make releases and generate packages for Linux / macOS. See Downloads page for more information.
Pyroscope depends on a few rust projects, particularly