Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LearnKit Laravel Prometheus

Laravel package voor het exporteren van Prometheus metrics met configureerbare exporters.

Installatie

Installeer het package via Composer:

composer require learnkit/laravel-prometheus

Publiceer de configuratie:

php artisan vendor:publish --tag=prometheus-config

Configuratie

Environment Variabelen

Voeg de volgende variabelen toe aan je .env bestand:

# Enable About Exporter
PROMETHEUS_EXPORT_ABOUT=true

# Automatically register routes (optional, default: true)
PROMETHEUS_AUTO_REGISTER_ROUTES=true

# Customize endpoint (optional)
PROMETHEUS_ENDPOINT=/metrics

# Customize middleware (optional)
PROMETHEUS_MIDDLEWARE=web

Config Bestand

Het config/prometheus.php bestand bevat alle configuratie opties:

return [
    'endpoint' => env('PROMETHEUS_ENDPOINT', '/metrics'),
    'middleware' => env('PROMETHEUS_MIDDLEWARE', 'web'),
    'auto_register_routes' => env('PROMETHEUS_AUTO_REGISTER_ROUTES', true),

    'exporters' => [
        'about' => [
            'enabled' => env('PROMETHEUS_EXPORT_ABOUT', false),
            'class' => \LearnKit\Prometheus\Exporters\AboutExporter::class,
        ],
    ],
];

Routes Configuratie

Automatische Route Registratie (Standaard)

Standaard registreert het package automatisch de /metrics route. Dit is de makkelijkste manier om te beginnen.

PROMETHEUS_AUTO_REGISTER_ROUTES=true

Handmatige Route Registratie

Als je meer controle wilt over waar en hoe de routes geregistreerd worden, kun je automatische registratie uitschakelen:

PROMETHEUS_AUTO_REGISTER_ROUTES=false

En vervolgens in je routes/web.php of een andere routes file:

use LearnKit\Prometheus\Facades\PrometheusRoutes;

// Gebruik standaard configuratie
PrometheusRoutes::routes();

// Of met custom opties
PrometheusRoutes::routes([
    'middleware' => ['web', 'auth'],
    'endpoint' => '/custom-metrics',
]);

Gebruik

Metrics Endpoint

Na installatie is er automatisch een /metrics endpoint beschikbaar dat alle metrics in Prometheus formaat teruggeeft.

Bezoek: http://your-app.test/metrics

About Exporter

De About Exporter verzamelt alle informatie van het php artisan about commando en exporteert dit als Prometheus info metrics.

Activeer via:

PROMETHEUS_EXPORT_ABOUT=true

Dit exporteert metrics zoals:

  • laravel_about_environment_info (Laravel versie, PHP versie, etc.)
  • laravel_about_drivers_info (Database, cache, session drivers)
  • En meer...

Custom Exporters

Je kunt je eigen exporters toevoegen door de Exporter interface te implementeren:

<?php

namespace App\Exporters;

use LearnKit\Prometheus\Exporters\Contracts\Exporter;
use Spatie\Prometheus\Facades\Prometheus;

class MyCustomExporter implements Exporter
{
    public function export(): void
    {
        Prometheus::addGauge('my_metric')
            ->value(100)
            ->labels(['label' => 'value']);
    }

    public function isEnabled(): bool
    {
        return config('prometheus.exporters.my_custom.enabled', false);
    }
}

Voeg deze toe aan config/prometheus.php:

'exporters' => [
    'about' => [
        'enabled' => env('PROMETHEUS_EXPORT_ABOUT', false),
        'class' => \LearnKit\Prometheus\Exporters\AboutExporter::class,
    ],
    'my_custom' => [
        'enabled' => env('PROMETHEUS_EXPORT_MY_CUSTOM', false),
        'class' => \App\Exporters\MyCustomExporter::class,
    ],
],

Beveiliging

Het wordt aangeraden om de metrics endpoint te beveiligen via middleware:

// config/prometheus.php
'middleware' => ['web', 'auth', 'admin'],

Of gebruik IP whitelisting in je nginx/apache configuratie.

Requirements

  • PHP 8.2+
  • Laravel 11.x of 12.x
  • Spatie Laravel Prometheus package

Author

Sebastiaan Kloos Email: sebastiaan@learnkit.dev

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages