gustamms/prometheus-laravel

There is no license information available for the latest version (1.1.1) of this package.

Lib for prometheus connector

1.1.1 2023-10-18 17:58 UTC

This package is auto-updated.

Last update: 2024-04-28 18:43:49 UTC


README

To use

Run this command

    composer require gustamms/prometheus-laravel

Copy the config/prometheus.php to your laravel/lumen implementation

https://github.com/gustamms/prometheus-laravel/blob/main/src/config/prometheus.php

In bootstrap/app.php add this configure

$app->configure('prometheus');

In bootstrap/app.php add this register provider

$app->register(\Gustamms\PrometheusLaravel\Providers\PrometheusServiceProvider::class);

In bootstrap/app.php add this middleware

$app->middleware([
    ...
    \Gustamms\PrometheusLaravel\Middleware\PrometheusRouteMiddleware::class
]);

In .env add and change the values of this lines

PROMETHEUS_STORAGE_ADAPTER=redis
PROMETHEUS_REDIS_HOST=localhost
PROMETHEUS_REDIS_PORT=6379
PROMETHEUS_REDIS_TIMEOUT=0.1
PROMETHEUS_REDIS_READ_TIMEOUT=10
PROMETHEUS_REDIS_PERSISTENT_CONNECTIONS=0
PROMETHEUS_REDIS_PREFIX=PROMETHEUS_
PROMETHEUS_NAMESPACE=application_name

How use for personal metrics?

use Gustamms\PrometheusLaravel\PrometheusCollector;

class DoSomething 
{
    private $collector;
    
    public function __construct() {
        $this->collector = new PrometheusCollector();
    }
    
    public function do(){
        $this->collector->getOrRegisterCounter(
            'do_method_use',
            'Pass in Do method'
        );
        
        $this->collector->getOrRegisterHistogram(
            'histogram_sample',
            'Histogram are made',
            1.2,
            ['label1'],
            ['labelvalue1']
        );
    }
}