--- title: "Python APM with Heroku" slug: "python-apm-with-heroku" description: "Learn how to install the Python APM Profiler in your Python app on Heroku. Setup for Django, Flask, and Pyramid applications with easy integration steps." updated: 2020-08-10T21:18:45Z published: 2020-08-10T21:18:45Z canonical: "docs.stackify.com/python-apm-with-heroku" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.stackify.com/llms.txt > Use this file to discover all available pages before exploring further. # Python APM with Heroku This document details how to install the **Python APM Profiler** in your **Python** application running on **Heroku**. ## Python Application Setup --- ### Django 1. Check that your setup meets our system requirements. - Python Versions (**2.7 - 3.7**) - Django Versions (**1.7 - 2**) 2. Install the Stackify Python APM agent using **pip**: ``` $ pip install stackify-python-apm ``` You may install your stackify-python-apm by adding it to your project's `requirements.txt` file. 3. Add `stackifyapm.contrib.django` to `INSTALLED_APPS` in your `settings.py`: ``` INSTALLED_APPS = ( # ... 'stackifyapm.contrib.django', ) ``` 4. Add our tracing middleware to `MIDDLEWARE` in your `settings.py`: ``` MIDDLEWARE = ( 'stackifyapm.contrib.django.middleware.TracingMiddleware', # ... ) ``` 5. Customize **Application Name** and **Environment** configuration in your `settings.py`: ``` APPLICATION_NAME = 'Python Application' ENVIRONMENT = 'Production' ``` --- ### Flask 1. Check that your setup meets our system requirements. - Python Versions (**2.7 - 3.7**) - Flask Versions (**0.7 - 1.0**) 2. Install the Stackify Python APM agent using **pip**: ``` $ pip install stackify-python-apm ``` You may install your stackify-python-apm by adding it to your project's `requirements.txt` file. 3. Update and insert the apm settings to your application: ``` from stackifyapm.contrib.flask import StackifyAPM app = Flask(...) StackifyAPM(app) ``` 4. Customize **Application Name** and **Environment** configuration: ``` app.config['APPLICATION_NAME'] = 'Python Application' app.config['ENVIRONMENT'] = 'Production' StackifyAPM(app) ``` ### Pyramid 1. Check that your setup meets our system requirements. - Python Versions (**2.7 - 3.7**) - Pyramid Versions (**1.4 - 1.10**) 2. Install the Stackify Python APM agent using **pip**: ``` $ pip install stackify-python-apm ``` You may install your stackify-python-apm by adding it to your project's `requirements.txt` file. 3. Update and insert the apm settings to your application: **Include our pyramid tween integration:** ``` with Configurator() as config: config.include('stackifyapm.contrib.pyramid') ``` **Or explicit tween configuration:** ``` with Configurator({ 'pyramid.tweens': ['stackifyapm.contrib.pyramid.stackifyapm_tween_factory']. }) as config: ... ``` 4. Customize **Application Name** and **Environment** configuration: ``` with Configurator({ 'APPLICATION_NAME': 'Python Application', 'ENVIRONMENT': 'Production', }) as config: config.include('stackifyapm.contrib.pyramid') ``` --- ### Add Buildpack ``` heroku buildpacks:add -i=1 https://github.com/stackify/heroku-buildpack-stackify.git ``` ### Configure Buildpack ``` heroku config:set STACKIFY_KEY="XXXXXXXXXX" heroku config:set STACKIFY_APPLICATION_NAME="My Application" heroku config:set STACKIFY_ENVIRONMENT_NAME="Production" ``` Set `STACKIFY_KEY` to your **Stackify Activation Key**. ## Verify Deploy changes to Heroku and make requests. You can then verify results in the Retrace dashboard.