tom-dalton-fanduel / fdjangodog

A simple Django middleware for submitting timings and exceptions to Datadog.
Other
11 stars 3 forks source link

FDjangoDog

Build Status

A simple Django middleware for submitting timings and exceptions to Datadog using DogStatsD.

This project was originally forked from https://github.com/conorbranagan/django-datadog

Requirements

Python:

Django

Installation

Download the code into your project and install it.

git clone git://github.com/tom-dalton-fanduel/fdjangodog.git
cd fdjangodog
python setup.py install

Add fdjangodog to your list of installed apps.

INSTALLED_APPS += ('fdjangodog', )

Add the following configuration to your projects' settings.py file:

FDJANGODOG_APP_NAME = 'my_app'  # Used as the prefix for all metric names - e.g. this would give 'my_app.request_time'
FDJANGODOG_STATSD_HOST = 'mystatsdhost' # Optional. Use this if your statsd host is not localhost
FDJANGODOG_STATSD_PORT = 54321 # Optional. Use this if you use another port for statsd

Add the Datadog request handler to your middleware in settings.py. In order to capture the most accurate timing data, and to ensure the tags are set correctly, it should be the 'outermost' (e.g. first in the list) middleware.

MIDDLEWARE_CLASSES.insert(0, 'fdjangodog.middleware.FDjangoDogMiddleware')

Usage

Once the middlewhere is installed, you'll start receiving timing data in your Datadog.

Note: my_app will be replaced by whatever value you give for DATADOG_APP_NAME.

This is tagged with:

Development

Locally, Tox is used to test the project in multiple versions of python.

make test

Travis CI is also setup to test pull requests in the same way.