--- title: "Python APM with AWS ECS" slug: "python-apm-with-aws-ecs" description: "Learn how to install Python APM Profiler for AWS ECS. Set up Django, Flask, or Pyramid apps with Stackify's Python APM agent. Verify results in Retrace dashboard." updated: 2019-11-07T18:56:29Z published: 2019-11-07T18:56:29Z canonical: "docs.stackify.com/python-apm-with-aws-ecs" --- > ## 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 AWS ECS This document details how to install the **Python APM Profiler** in your **Python** application running on **AWS Elastic Container Service (ECS)**. ## Prerequisite Follow the [Retrace AWS ECS](/docs/aws-elastic-container-service-ecs) Guide. ## 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') ``` #### Task Configuration Application containers are required to have the **stackify** volume mount configured in the [Retrace AWS ECS](/docs/aws-elastic-container-service-ecs) Guide. Add the **stackify** volume to the task definition: ``` { "volumes": [ { "name": "stackify", "host": { "sourcePath": "/var/stackify" } } ] } ``` Add **stackify** mount points to the container definition: ``` { "containerDefinitions": [ { "mountPoints": [ { "readOnly": false, "containerPath": "/usr/local/stackify", "sourceVolume": "stackify" } ] } ] } ``` ## Verify Start up your Python application task and make requests. You can then verify results in the Retrace dashboard.