Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Prometheus Client Laravel Package

tweedegolf/prometheus-client

Archived/unmaintained PHP Prometheus client by Tweede Golf. Provides Counter and Gauge metrics with multiple storage backends (e.g., APC/APCu) and a text formatter to expose a /metrics endpoint for Prometheus scraping.

View on GitHub
Deep Wiki
Context7

Not maintained

Since Tweede Golf does not use / maintain this library anymore (for several years already) - this repository is archived. If you like like to maintain this - please contact us at [email protected]

Tweede Golf Prometheus PHP Client

A PHP Client for prometheus, providing several storage backends. This client mostly follows the guidelines as specified in the prometheus docs.

This library currently does not implement the Summary metric type. For users of Symfony a prometheus client bundle is available.

Installation

This library uses Composer. Simply run the following command to add it as a dependency to your project:

composer require tweedegolf/prometheus-client

Usage

To start, you must create a CollectorRegistry. To this registry you may register any number of metric collectors. To create a collector registry you must specificy a storage adapter. For easy setup you may want to try the APC or APCU Storage adapters. See the example below:

use TweedeGolf\PrometheusClient\CollectorRegistry;
use TweedeGolf\PrometheusClient\Storage\ApcuAdapter;

$registry = new CollectorRegistry(new ApcuAdapter());
$registry->createCounter('requests', [], null, true);
$registry->createGauge('traffic', ['endpoint'], 'Active traffic per endpoint', true);

Next on some event (like a request entering your application) you can modify the existing metrics. An example is shown below:

$registry->getCounter('requests')->inc();
$registry->getGauge('traffic')->set(10, ['/home']);

Finally your application should expose some endpoint where metrics can be scraped by Prometheus:

use TweedeGolf\PrometheusClient\Format\TextFormatter;

$formatter = new TextFormatter();
header('Content-Type', $formatter->getMimeType());
echo $formatter->format($registry->collect());
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package