Skip to main content

Python

Supported platforms#

LinuxmacOSWindowsDocker
โœ…โœ…โœ…

Profiling Python applications#

First, install pyroscope-io pip package:

pip install pyroscope-io

Minimal Configuration#

Add the following code to your application. This code will initialize pyroscope profiler and start profiling:

import pyroscope
pyroscope.configure(  application_name = "my.python.app", # replace this with some name for your application  server_address   = "http://my-pyroscope-server:4040", # replace this with the address of your pyroscope server)

Full Configuration#

Optionally, you can configure several parameters:

import pyroscope
pyroscope.configure(  application_name    = "my.python.app", # replace this with some name for your application  server_address      = "http://my-pyroscope-server:4040", # replace this with the address of your pyroscope server  auth_token          = "{YOUR_API_KEY}", # optional, if authentication is enabled, specify the API key  sample_rate         = 100, # default is 100  detect_subprocesses = False, # detect subprocesses started by the main process; default is False  oncpu               = True, # report cpu time only; default is True  native              = False, # profile native extensions; default is False  gil_only            = True, # only include traces for threads that are holding on to the Global Interpreter Lock; default is True  log_level           = "info", # default is info, possible values: trace, debug, info, warn, error and critical   tags           = {    "region":   '{os.getenv("REGION")}',  })

Tags#

You can add tags to certain parts of your code:

# You can use a wrapper:with pyroscope.tag_wrapper({ "controller": "slow_controller_i_want_to_profile" }):  slow_code()

Example#

Check out this example python project in our repository for examples of how you can use these features.