{"id":22264310,"url":"https://github.com/bushlanovdev/laravel-prometheus-exporter","last_synced_at":"2025-08-21T16:23:27.433Z","repository":{"id":266151635,"uuid":"896952674","full_name":"BushlanovDev/laravel-prometheus-exporter","owner":"BushlanovDev","description":"📊 Laravel and Lumen prometheus exporter","archived":false,"fork":false,"pushed_at":"2024-12-10T19:04:31.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-11T05:51:18.432Z","etag":null,"topics":["laravel","laravel-package","lumen","metrics","php","prometheus","prometheus-exporter"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BushlanovDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-01T17:52:26.000Z","updated_at":"2024-12-10T19:02:56.000Z","dependencies_parsed_at":"2024-12-02T21:43:25.285Z","dependency_job_id":null,"html_url":"https://github.com/BushlanovDev/laravel-prometheus-exporter","commit_stats":null,"previous_names":["bushlanovdev/laravel-prometheus-exporter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BushlanovDev%2Flaravel-prometheus-exporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BushlanovDev%2Flaravel-prometheus-exporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BushlanovDev%2Flaravel-prometheus-exporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BushlanovDev%2Flaravel-prometheus-exporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BushlanovDev","download_url":"https://codeload.github.com/BushlanovDev/laravel-prometheus-exporter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236353050,"owners_count":19135501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["laravel","laravel-package","lumen","metrics","php","prometheus","prometheus-exporter"],"created_at":"2024-12-03T10:08:31.397Z","updated_at":"2025-08-10T07:18:50.004Z","avatar_url":"https://github.com/BushlanovDev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Laravel and Lumen Prometheus Exporter\n\n[![Packagist Version](https://img.shields.io/packagist/v/bushlanov-dev/laravel-prometheus-exporter.svg?style=flat-square)](https://packagist.org/packages/bushlanov-dev/laravel-prometheus-exporter)\n[![PHP Version](https://img.shields.io/packagist/php-v/bushlanov-dev/laravel-prometheus-exporter.svg?style=flat-square)]()\n[![Laravel Version](https://img.shields.io/badge/Laravel-9.x,%2010.x,%2011.x,%2012.x-brightgreen.svg?style=flat-square)]()\n[![Lumen Version](https://img.shields.io/badge/Lumen-9.x,%2010.x,%2011.x-brightgreen.svg?style=flat-square)]()\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)\n\nA prometheus exporter for the Laravel and the Lumen.\n\nThis package is a wrapper bridging [promphp/prometheus_client_php](https://github.com/promphp/prometheus_client_php)\n\n## Installation\n\n```bash\ncomposer require bushlanov-dev/laravel-prometheus-exporter\n```\n\n### Laravel\n\nLaravel 11+ register the service provider in `bootstrap/providers.php`:\n```php\nreturn [\n    // ...\n    BushlanovDev\\LaravelPrometheusExporter\\Providers\\PrometheusServiceProvider::class,\n];\n```\n\nOld versions of laravel register the service provider in `config/app.php`:\n```php\n'providers' =\u003e [\n    // ...\n    BushlanovDev\\LaravelPrometheusExporter\\Providers\\PrometheusServiceProvider::class,\n];\n```\n\nLaravel 11+ register the middleware in `bootstrap/app.php`:\n```php\n// ...\n-\u003ewithMiddleware(function (Middleware $middleware) {\n    $middleware-\u003ealias([\n        'prometheus' =\u003e BushlanovDev\\LaravelPrometheusExporter\\Middleware\\PrometheusLaravelMiddleware::class,\n    ]);\n})\n```\n\nOld versions of laravel register the middleware in `app/Http/Kernel.php`:\n```php\nprotected $routeMiddleware = [\n    // ...\n    'prometheus' =\u003e BushlanovDev\\LaravelPrometheusExporter\\Middleware\\PrometheusLaravelMiddleware::class,\n];\n```\n\nRegister metrics route `routes/web.php`:\n```php\nRoute::get('metrics', [BushlanovDev\\LaravelPrometheusExporter\\Controllers\\LaravelMetricsController::class, 'metrics']);\n```\n\nAdd middleware to routes. It is advisable to give names to all routes:\n```php\nRoute::get('/', function () {\n// ...\n})-\u003emiddleware('prometheus')-\u003ename('route_name');\n```\n\n### Lumen\n\nRegister the service provider and middleware in `bootstrap/app.php`:\n```php\n$app-\u003eregister(BushlanovDev\\LaravelPrometheusExporter\\Providers\\PrometheusServiceProvider::class);\n```\n\n```php\n$app-\u003erouteMiddleware([\n    'prometheus' =\u003e BushlanovDev\\LaravelPrometheusExporter\\Middleware\\PrometheusLumenMiddleware::class,\n]);\n```\n\nRegister metrics route:\n```php\n$app-\u003erouter-\u003egroup(['namespace' =\u003e '\\BushlanovDev\\LaravelPrometheusExporter\\Controllers'], function ($router) {\n    $router-\u003eget('metrics', ['as' =\u003e 'metrics', 'uses'=\u003e 'LumenMetricsController' . '@metrics']);\n});\n```\n\nAdd middleware to routes. It is advisable to give names to all routes:\n```php\n$router-\u003eget('/', ['middleware' =\u003e 'prometheus', 'as' =\u003e 'route_name', function () use ($router) {/*...*/}]);\n```\n\n## Guzzle metrics\n\nTo observe Guzzle metrics, you should register the following provider:\n```php\nBushlanovDev\\LaravelPrometheusExporter\\Providers\\GuzzleServiceProvider::class\n```\n\nAnd register the middleware for Http facade or Guzzle client:\n```php\nHttp::globalMiddleware(function ($handler) {\n    return $this-\u003eapp['prometheus.guzzle.middleware']($handler);\n});\n\n$this-\u003eapp-\u003ealias('prometheus.guzzle.client', Client::class);\n```\n\n## Configuration\n\nThe package has a default configuration which uses the following environment variables.\n```environment\nPROMETHEUS_NAMESPACE=app\nPROMETHEUS_STORAGE_ADAPTER=redis\nPROMETHEUS_REDIS_HOST=localhost\nPROMETHEUS_REDIS_PORT=6379\nPROMETHEUS_REDIS_DATABASE=0\nPROMETHEUS_REDIS_TIMEOUT=0.1\nPROMETHEUS_REDIS_READ_TIMEOUT=10\nPROMETHEUS_REDIS_PERSISTENT_CONNECTIONS=0\nPROMETHEUS_REDIS_PREFIX=PROMETHEUS_\n```\n\nTo customize the configuration file, publish the package configuration using Artisan:\n```bash\nphp artisan vendor:publish --provider=\"BushlanovDev\\LaravelPrometheusExporter\\Providers\\PrometheusServiceProvider\"\n```\n\n### Protect metrics endpoint\n\nIf you need to prevent others from accessing your /metrics routes, you can enable the corresponding setting. \nCurrently, only basic_auth is supported to secure your metrics endpoint.\n```environment\nPROMETHEUS_ROUTE_AUTH_ENABLED=true\nPROMETHEUS_ROUTE_AUTH_USERNAME=username\nPROMETHEUS_ROUTE_AUTH_PASSWORD=password\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbushlanovdev%2Flaravel-prometheus-exporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbushlanovdev%2Flaravel-prometheus-exporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbushlanovdev%2Flaravel-prometheus-exporter/lists"}