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.
This library uses Composer. Simply run the following command to add it as a dependency to your project:
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:
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());