Metricas y Telemetria
El módulo metrics registra contadores, gauges y observaciones de histogramas de la aplicación.
Esta es una referencia de API. Los fragmentos muestran una observación cada vez y propagan los errores del colector.
Cada función devuelve true, nil después de pasar la observación al colector activo. Si el contexto de ejecución no tiene colector, devuelve nil y un error errors.INTERNAL no reintentable.
Las etiquetas son opcionales. Solo se registran las entradas cuya clave y valor son strings; las demás se ignoran silenciosamente. Un argumento de etiquetas que no sea una tabla se trata como si no se hubieran proporcionado etiquetas.
Los nombres de métricas se reenvían sin validación local.
Carga
local metrics = require("metrics")
Contadores
metrics.counter_inc
Incrementa un contador en uno.
local recorded, err = metrics.counter_inc("requests_total", {method = "POST"})
if err then return nil, err end
return recorded
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Nombre de metrica |
labels |
table? | Pares clave-valor de etiquetas |
Devuelve: boolean, error
metrics.counter_add
Añade un valor a un contador.
local recorded, err = metrics.counter_add("bytes_total", 1024, {direction = "out"})
if err then return nil, err end
return recorded
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Nombre de metrica |
value |
number | Valor a agregar |
labels |
table? | Pares clave-valor de etiquetas |
Devuelve: boolean, error
El entorno de ejecución reenvía el valor sin modificar y no exige que sea positivo.
Gauges
metrics.gauge_set
Establece el valor actual de un gauge.
local recorded, err = metrics.gauge_set("queue_depth", 42, {queue = "emails"})
if err then return nil, err end
return recorded
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Nombre de metrica |
value |
number | Valor actual |
labels |
table? | Pares clave-valor de etiquetas |
Devuelve: boolean, error
metrics.gauge_inc
Incrementa un gauge en uno.
local recorded, err = metrics.gauge_inc("connections", {pool = "db"})
if err then return nil, err end
return recorded
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Nombre de metrica |
labels |
table? | Pares clave-valor de etiquetas |
Devuelve: boolean, error
metrics.gauge_dec
Decrementa un gauge en uno.
local recorded, err = metrics.gauge_dec("connections", {pool = "db"})
if err then return nil, err end
return recorded
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Nombre de metrica |
labels |
table? | Pares clave-valor de etiquetas |
Devuelve: boolean, error
Histogramas
metrics.histogram
Registra una observación en un histograma.
local recorded, err = metrics.histogram("duration_seconds", 0.123, {method = "GET"})
if err then return nil, err end
return recorded
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Nombre de metrica |
value |
number | Valor observado |
labels |
table? | Pares clave-valor de etiquetas |
Devuelve: boolean, error
Errores
| Condición | Tipo | Reintentable |
|---|---|---|
| Colector no disponible | errors.INTERNAL |
no |
Los nombres o valores de tipo no válido generan errores de argumentos Lua en lugar de devolver errores estructurados.
Consulte Manejo de Errores para trabajar con errores.