Instrumentation

New in version 19.1.

Gunicorn provides an optional instrumentation of the arbiter and workers using the statsD protocol over UDP. Thanks to the gunicorn.instrument.statsd module, Gunicorn becomes a statsD client. The use of UDP cleanly isolates Gunicorn from the receiving end of the statsD metrics so that instrumentation does not cause Gunicorn to be held up by a slow statsD consumer.

To use statsD, just tell Gunicorn where the statsD server is:

  1. $ gunicorn --statsd-host=localhost:8125 --statsd-prefix=service.app ...

The Statsd logger overrides gunicorn.glogging.Logger to track all requests. The following metrics are generated:

  • gunicorn.requests: request rate per second
  • gunicorn.request.duration: histogram of request duration (in millisecond)
  • gunicorn.workers: number of workers managed by the arbiter (gauge)
  • gunicorn.log.critical: rate of critical log messages
  • gunicorn.log.error: rate of error log messages
  • gunicorn.log.warning: rate of warning log messages
  • gunicorn.log.exception: rate of exceptional log messages

See the statsd-host setting for more information.