A PHP Prometheus client library
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 support@tweedegolf.com, (*1)
A PHP Client for prometheus, providing several storage backends. This client mostly follows the guidelines as specified in the prometheus docs., (*2)
This library currently does not implement the Summary metric type. For users of Symfony a prometheus client bundle is available., (*3)
This library uses Composer. Simply run the following command to add it as a dependency to your project:, (*4)
composer require tweedegolf/prometheus-client
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:, (*5)
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:, (*6)
$registry->getCounter('requests')->inc(); $registry->getGauge('traffic')->set(10, ['/home']);
Finally your application should expose some endpoint where metrics can be scraped by Prometheus:, (*7)
use TweedeGolf\PrometheusClient\Format\TextFormatter; $formatter = new TextFormatter(); header('Content-Type', $formatter->getMimeType()); echo $formatter->format($registry->collect());