Getting Started

Hi there! thank you for trying out Pyroscope! In this guide you'll learn everything you need to know to start using Pyroscope to find bottlenecks in your code. If you have any questions or if something doesn't work reach out to us in our slack group or email us at contact@pyroscope.io.

You can also schedule a call with an engineer if that's easier for you. We would love to learn about your use-case and help you get started.

Install Pyroscope Server

We provide a few different ways for you to install Pyroscope server:

  • if you're on a Mac, we recommend using homebrew
  • if you're on Linux, we recommend using our rpm or deb packages
  • we also have a docker image that you can use anywhere

To find out about other ways of installing Pyroscope, or to find packages for other CPU architectures (e.g ARM) visit our Downloads page.

brew install pyroscope-io/brew/pyroscope

Verify the installation

After installing Pyroscope, verify that the installation worked by opening a new terminal session and running the command pyroscope.

pyroscope

You should see something like this:

_ __ _ _ _ __ ___ ___ ___ ___ _ __ ___
| '_ \| | | | '__/ _ \/ __|/ __/ _ \| '_ \ / _ \
| |_) | |_| | | | (_) \__ \ (_| (_) | |_) | __/
| .__/ \__, |_| \___/|___/\___\___/| .__/ \___|
| | __/ | | |
|_| |___/ |_|
USAGE
pyroscope [flags] <subcommand>
...

If something doesn't work, reach out to us in our slack group or email us at contact@pyroscope.io.

Start the server

To start pyroscope server run pyroscope server command:

pyroscope server

Pyroscope server is the database where all the profiling information is stored. It also has a web UI (by default available on port :4040)

After you start the server you should be able to open http://localhost:4040/ and see that pyroscope server is profiling itself (pyroscope.server.cpu application).

Profile your applications

Now that you have pyroscope server running you can start continuously profiling your own applications.

We currently support 3 platforms:

  • Ruby
  • Python
  • Go

We'll be adding more platforms soon, if you want us to prioritize one particular platform, reach out to us in our slack group or email us at contact@pyroscope.io.

To start profiling a Ruby application, add pyroscope exec before the command. For example, if you're working with a Rails application, here's how you profile it:

export PYROSCOPE_SPY_NAME=rbspy
export PYROSCOPE_APPLICATION_NAME=my.rails.app
pyroscope exec rails server

If you're running your app inside a Docker container, see our Docker Guide. We also have examples.

This will make pyroscope agent send profiling data over to pyroscope server. Open http://localhost:4040/ in your browser to explore the incoming profiling data.

Configuration

Pyroscope can be configured with command line arguments, environment variables and config files. See Configuration for more info on this topic.

Deploy Pyroscope in production

If you're installing pyroscope in production environment, read Deployment Guide.