Zesty metrics collection and Statsd integration for Django.

pip install django-zesty-metrics==0.3.1



django-zesty-metrics is a middleware suite that uses statsd to report important metrics to a StatD server.

Out of the box, it will track:

  • response times individually by view, and in aggregate
  • aggregate user activity data

With some minor configuration, it will track:

  • individual user activity data
  • arbitrary metrics



Install with pip install django-zesty-metrics.

Alternately, clone the git repository and execute python install within.


In your Django settings:

  • Add zesty_metrics to the INSTALLED_APPS
  • Add zesty_metrics.middleware.MetricsMiddleware to MIDDLEWARE_CLASSES
  • Set the following, as needed: - STATSD_HOST, default localhost - STATSD_PORT, default 8125 - STATSD_PREFIX, default None - ZESTY_TRACKING_CLASSES, default ('zesty_metrics.tracking.UserAccounts',)
  • Run syncdb (or migrate if you use South).

Set up a cron job to run the report_metrics command regularly. At least once a day, but you can update it as often as you want. This command reports metrics from the trackers that you configure in ZESTY_TRACKING_CLASSES.

If you want to send metrics from the client-side, hook up the default URLs in your

urlpatterns = patterns(
    url(r'^metrics/', include('zesty_metrics.urls')),


Lots of ideas were taken from django-statsd and django-munin.


  • 0.3.1: - Added missing migrations and management commands.
  • 0.3: - Added tests! Many things that didn't work now work. - Added DailyActivityRecord for tracking daily activity.
  • 0.2: Added latency tracking, myriad bug-fixes.
  • 0.1.1: Fixed "NO VALUE" error in report_metrics command when values were pulled from the cache.
  • 0.1: Initial release