Counter#

Tipo contador serve para acompanhar contagens de itens. Esse tipo só pode ser incrementado com valores positivos. Caso você precise acompanhar um valor que pode aumentar e diminuir use o tipo Gauge.

Exemplo de uso#

from asyncworker.metrics import Counter

c = Counter("users_created", "Total de Usuários criados no sistema")
c.inc()  # Incrementa o contados em 1
c.inc(3) # Incrementa o contados em 3

Interface principal#

A interface principal desse tipo de Métrica é o método inc(). Através dele é que mudamos o valor interno de uma métrica.

def inc(value=1):
  pass

O método inc() não pode receber valores negativos.

Interfaces adicionais#

Esse tipo de métrica expõe uma interface adicional que é o método count_exceptions(). Esse método pode ser usado com decorator ou como context manager.

Por padrão conta todas as exceções, exemplo:

from asyncworker.metrics import Counter
c = Counter("erros", "Total de erros")

@c.count_exceptions()
def f():
  pass

with c.count_exceptions():
  pass

Se desejar contar apenas um tipo de exceção específico, basta passar esse tipo como parametro.

# Count only one type of exception
with c.count_exceptions(ValueError):
  pass