--- title: "Python APM with Docker" slug: "python-apm-with-docker" description: "Install Stackify Python APM Profiler for Docker or Docker Swarm. Setup for Django, Flask, and Pyramid. Verify results in Retrace dashboard." updated: 2019-05-20T21:42:26Z published: 2019-05-20T21:42:26Z canonical: "docs.stackify.com/python-apm-with-docker" --- > ## 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 Docker This document details how to install the **Python APM Profiler** in your **Python** application running on **Docker** or **Docker Swarm**. ## Prerequisite Follow the [Retrace Docker Install](https://docs.stackify.com/docs/retrace-docker-install) Guide. ## Python Docker 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') ``` --- ## Running your Application Start your application with the `stackify` shared volume. ``` docker run -v stackify:/usr/local/stackify [your-application-image] ``` ## Verify Make application requests, you can then verify results in the Retrace dashboard.