aleteus / prometheus_client_php
Prometheus instrumentation library for PHP applications.
1.0.1
2019-10-04 10:46 UTC
Requires
- php: ^7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.2
- symfony/polyfill-apcu: ^1.6
Requires (Dev)
- phpunit/phpunit: ^7.5
Suggests
- ext-apc: Required if using APCu.
- ext-redis: Required if using Redis.
README
Instalação
composer require aleteus/prometheus_client_php
Como usar?
$parameters = [ 'name1' => $var1, 'name2' => $var2, 'name3' => $var3 ]; $prometheus = new PrometheusClient( '*:9091', 'nome', 'da_metrica', 'produto', $parameters, 'tipo da metrica (histogram, counter ou gauge)', 'nome_da_aplicação'); $prometheus->pushGateway($timeProcess, $parameters, $help);
Explicando:
Parameters:
- O parameters armazena informações adicionais que são escolhidas de acordo com a necessidade da monitoria, e aparecem em forma de 'etiquetas' na interface do Pushgateway, as quais serão manipuladas na hora de montar os gráficos no Grafana. Este mantém o padrão 'name1' => $var1. A string 'name1' pra indicar o nome que indique o valor da váriável '$var1'.
Prometheus:
- O cliente é criado a partir de sete argumentos:
- Endereço do Pushgateway,
- Nome da métrica (separado por duas strings)
- Nome do produto
- O próprio $parameters
- Tipo da métrica
- Nome da aplicação
Exemplo:
$prometheus = new PrometheusClient( '*:9091', 'nome', 'da_metrica', 'produto', $parameters, 'tipo da metrica (histogram, counter ou gauge)', 'nome_da_aplicação'); $prometheus->pushGateway($timeProcess, $parameters, $help);
Pushgateway
$prometheus->pushGateway($timeProcess, $parameters, $help);
Essa parte do código é a responsável por enviar todas as informações para o Prometheus e Pushgateway e ela possui três parâmetros obrigatórios: ($timeProcess, $parameters, $help).
- O
$timeprocess
precisa ter o valor de algum momento do processamento do código. - O
$parameters
vai enviar o array que criamos no exemlo anterior. - E o
$help
vai possuir alguma informação adicional que queira armazenar no Pushgateway.
- Obs: Se algum desses parâmetros for nulo, o envio não irá funcionar!
Tipos de métricas
Histogram
- 'Histograms' captam eventos e a frequência que estes ocorrem.
Counter
- 'Counters' tem a utilidade de seu próprio significado, simplesmente um contador, o qual se reinicia no final do processo.
Gauge
-'Gauges' são similarres aos 'Counters', mas o valor de um Gauge pode subir ou descer.