Developer Guide

This guide will help you get started developing Pyroscope.

Dependencies

Make sure you have the following dependencies installed before setting up your developer environment:

  • git
  • go
  • node + yarn
  • rust (you'll only need it to work on Python and Ruby integrations)

macOS

On macOS we recommend you to use homebrew to manage dependencies:

brew install git
brew install go
brew install node
brew install rust
npm install -g yarn

Building pyroscope locally

To start developing Pyroscope you need to know a few commands:

# builds rust dependencies for rbspy / pyspy,
# normally you only need to run this once:
make build-rust-dependencies
# builds web assets (JavaScript + SCSS code):
make assets
# to build assets in --watch mode use this command:
make assets-watch
# builds the main binary:
make build
# starts pyroscope server:
make server

Text Editors

VS Code

Go

If you're using VS Code we would recommend the official Go extension from Google.

We use revive for linting. Add --config=${workspaceFolder}/revive.toml to Go: Lint Flags section in VS Code settings.

Style Guides

Please checkout out the style guides we use.