Métricas e Telemetria

O módulo metrics registra contadores, gauges e observações de histogramas da aplicação.

Esta é uma referência de API. Cada exemplo mostra uma observação isolada e propaga erros do collector.

Todas as funções retornam true, nil depois de enviar a observação ao collector ativo. Se o contexto de execução não tiver um collector, retornam nil e um erro errors.INTERNAL não retentável.

Labels são opcionais. Apenas entradas com chave string e valor string são registradas; as demais são ignoradas silenciosamente. Um argumento de labels que não seja tabela é tratado como se nenhum label tivesse sido fornecido.

Os nomes das métricas são encaminhados sem validação local.

Carregamento

local metrics = require("metrics")

Contadores

metrics.counter_inc

Incrementa um contador em um.

local recorded, err = metrics.counter_inc("requests_total", {method = "POST"})
if err then return nil, err end
return recorded
Parâmetro Tipo Descrição
name string Nome da métrica
labels table? Pares chave-valor de labels

Retorna: boolean, error

metrics.counter_add

Adiciona um valor a um contador.

local recorded, err = metrics.counter_add("bytes_total", 1024, {direction = "out"})
if err then return nil, err end
return recorded
Parâmetro Tipo Descrição
name string Nome da métrica
value number Valor a adicionar
labels table? Pares chave-valor de labels

Retorna: boolean, error

O runtime encaminha o valor sem alterações e não exige que ele seja positivo.

Gauges

metrics.gauge_set

Define um gauge com o valor atual.

local recorded, err = metrics.gauge_set("queue_depth", 42, {queue = "emails"})
if err then return nil, err end
return recorded
Parâmetro Tipo Descrição
name string Nome da métrica
value number Valor atual
labels table? Pares chave-valor de labels

Retorna: boolean, error

metrics.gauge_inc

Incrementa um gauge em um.

local recorded, err = metrics.gauge_inc("connections", {pool = "db"})
if err then return nil, err end
return recorded
Parâmetro Tipo Descrição
name string Nome da métrica
labels table? Pares chave-valor de labels

Retorna: boolean, error

metrics.gauge_dec

Decrementa um gauge em um.

local recorded, err = metrics.gauge_dec("connections", {pool = "db"})
if err then return nil, err end
return recorded
Parâmetro Tipo Descrição
name string Nome da métrica
labels table? Pares chave-valor de labels

Retorna: boolean, error

Histogramas

metrics.histogram

Registra uma observação de histograma.

local recorded, err = metrics.histogram("duration_seconds", 0.123, {method = "GET"})
if err then return nil, err end
return recorded
Parâmetro Tipo Descrição
name string Nome da métrica
value number Valor observado
labels table? Pares chave-valor de labels

Retorna: boolean, error

Erros

Condição Tipo Retentável
Coletor não disponível errors.INTERNAL não

Tipos inválidos de nome ou valor geram erros de argumento Lua, em vez de retornar erros estruturados.

Consulte Tratamento de erros para trabalhar com erros.