Atualizando para 0.15.0#

Changelog: 0.15.0

A partir dessa versão é possível exportar métricas no formato do Prometheus. Mais detalhes na documentação sobre Métricas.

Isso significa que o asyncworker pode adicionar uma rota HTTP com path /metrics (valor padão da config settings.METRICS_ROUTE_PATH. Essa configuração está ligada por padrão e pode ser desligada com a ENV VAR ASYNCWORKER_METRICS_ROUTE_ENABLED=0. Mais detalhes na documentação sobre Configuração de métricas.

Se a usa aplicação já exporta métricas e faz isso usando as classes do prometheus_client o ideal é que você ajuste seu código para que faça uso das classes expostas pelo asyncworker (asyncworker.metrics.*). Se seu código importa as métricas dessa forma:

from prometheus_client import Counter, Gauge, Histogram

deve mudar para:

from asyncworker.metrics import Counter, Gauge, Histogram

As classes de métricas do asyncworker podem ser usadas como drop-in replacement para as classes expostas pelo prometheus_client.

Se você faz uso de classes que ainda não são expostas pelo asyncworker, como por exemplo Enum, Summary, Info deve fazer a instanciação delas dessa forma:

from asyncworker.metrics.registry import REGISTRY
from prometheus_client import Summary

_s = Summary(..., registry=REGISTRY)

Dessa forma suas métricas estarão vinculadas ao MetricsRegistry do asyncworker e serão expostas no response do /metrics.