# Instrumentation

::: versionadded
19.1
:::

Gunicorn provides an optional instrumentation of the arbiter and workers
using the [statsD](https://github.com/etsy/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:

``` bash
$ 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](settings.html#statsd-host) setting for more
information.