alemetheus v11.6.8
Prometheus client for node.js
Instalação
npm i alemetheus
Implementando
No início do código declaramos o pacote que iremos utilizar:
const client = require('alemetheus');
Após declarar o pacote, criaremos o client do Prometheus para a criação das métricas e exportar as informações de acordo com as configuraçes desejadas.
const prometheusClient = new client.Prometheus(process.env.PUSH_GATEWAY, 'nome_da_metrica', '','produto',parameters = {
var1 = a;
var2 = b;
var3 = c;
var4 = d;
},'(histogram, summary, gauge, counter)', 'nome da aplicação' );
Aplicando o Prometheus
Um dos focos de se monitorar aplicações, é buscar o tempo de processamento de algum evento, ou de algum método, função e etc. Isso pode ser feito de uma maneira bem simples:
Exemplo
Resumindo: o start
sempre será declarado como um new Date()
para pegar o momento do início do processo e enviar este valor ao Prometheus para que este calcule o tempo e gere um valor. O parameters
sempre será um objeto o qual pode receber variáveis (var1, var2, etc.
) com informações de acordo com a necessidade do monitoramento do código.
const qualquerMetodo = {
let start = new Date();
x + y = 5;
parameters = {
var1 = a;
var2 = b;
var3 = c;
var4 = d;
}
prometheusClient.pushGateway(start, parameters, var5); //var5: este terceiro parâmetro é obrigatório, mas pode ser passado qualquer valor.
}
Tipos de métricas
Counter
'Counters' tem a utilidade de seu próprio significado, simplesmente um contador, o qual se reinicia no final do processo.
const client = require('alemetheus');
const counter = new client.Counter({
name: 'metric_name',
help: 'metric_help'
});
counter.inc(); // Inc with 1
counter.inc(10); // Inc with 10
Gauge
'Gauges' são similarres aos 'Counters', mas o valor de um Gauge pode subir ou descer.
const client = require('alemetheus');
const gauge = new client.Gauge({ name: 'metric_name', help: 'metric_help' });
gauge.set(10); // Set to 10
gauge.inc(); // Inc with 1
gauge.inc(10); // Inc with 10
gauge.dec(); // Dec with 1
gauge.dec(10); // Dec with 10
Histogram
'Histograms' captam eventos e a frequência que estes ocorrem.
const client = require('alemetheus');
const histogram = new client.Histogram({
name: 'metric_name',
help: 'metric_help'
});
histogram.observe(10); // Observa o valor no 'histogram'
Summary
'Summaries' calculam a porcentagem de valores em observação.
const client = require('alemetheus');
new client.Summary({
name: 'metric_name',
help: 'metric_help',
percentiles: [0.01, 0.1, 0.9, 0.99]
});