aio-libs / aio-libs/aiohttp

Gunicorn and StatsD metrics

Offen
#3,777 11 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Python
Sterne
16.5k
Forks
2.4k
Ø Merge
17 Std. 22 Min.
Gemergte PRs (30 T.)
212

Beschreibung

## Long story short

Hi,

Gunicorn provides an optional instrumentation of the arbiter and workers using the StatsD protocol. Details can be found at https://docs.gunicorn.org/en/latest/instrumentation.html

But there is no way to get metrics because we need to use worker class from AIOHTTP (`aiohttp.GunicornWebWorker`) and it does not use `access` method of the logger (https://github.com/benoitc/gunicorn/blob/master/gunicorn/instrument/statsd.py#L90). It's uses `info` (https://github.com/aio-libs/aiohttp/blob/master/aiohttp/web_log.py#L233) for access logs.

I'm very interested in that feature and I like to help with development. I see two ways of implementation:
1. Somehow refactor current code-base to use `access` method of the logger.
2. Provide optional instrumentation logic using the StatsD protocol in `aiohttp.GunicornWebWorker`, something like Gunicorn already have.

## Expected behaviour

Run application using Gunicorn and specify StatsD configuration parameters:
```
$ gunicorn -w 4 -b "0.0.0.0:4000" --worker-class=aiohttp.GunicornWebWorker --statsd-host="0.0.0.0:9125" --statsd-prefix=aiohttp app_aiohttp:get_application
```

Check StastD logs and see metrics with names `gunicorn.requests` and `gunicorn.request.duration`.

## Actual behaviour

Run application using Gunicorn and specify StatsD configuration parameters:
```
$ gunicorn -w 4 -b "0.0.0.0:4000" --worker-class=aiohttp.GunicornWebWorker --statsd-host="0.0.0.0:9125" --statsd-prefix=aiohttp app_aiohttp:get_application
```

Check StastD logs. You can see metric with name `gunicorn.workers`, but not with names `gunicorn.requests` and `gunicorn.request.duration`.

## Your environment

MacOS 10.14.4
aiohttp 3.5.4
gunicorn 19.9.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.