# Statsd Logging

Hypercorn can optionally log metrics using the StatsD or DogStatsD protocols. The metrics logged are,

- `hypercorn.requests`: rate of requests

- `hypercorn.request.duration`: request duration in milliseconds

- `hypercorn.request.status.[#code]`: rate of responses by status code

- `hypercorn.log.critical`: rate of critical log messages

- `hypercorn.log.error`: rate of error log messages

- `hypercorn.log.warning`: rate of warning log messages

- `hypercorn.log.exception`: rate of exceptional log messages

## Usage

Setting the config `statsd_host` to `[host]:[port]` will result in these metrics being set to that host, port combination. The config `statsd_prefix` can be used to prefix all metrics and `dogstatsd_tags` can be used to add tags to each metric.

## Customising the statsd logger

The statsd logger class can be customised by calling `set_statsd_logger_class` method of the `Config` class. This is only possible when using the python based configuration file. The `hypercorn.statsd.StatsdLogger` class is used by default.