PApi - PHP Api client library for Prometheus
Targets to provide simple means for obtaining data from Prometheus API.
Stable for Prometheus 1.x and <= v2.2 api spec NOTICE: some endpoints are only available in newer versions of Prometheus. For detailed list see table of available calls below.
Use composer to add PApi as dependency:
$ composer install cdn77/papi
<?php
use PApi\Client;
require __DIR__ . '/vendor/autoload.php';
$client = new Client([
'host' => 'my-prometheus.com',
]);
| Name | Default value | Description |
|---|---|---|
| scheme | http | Host scheme |
| host | localhost | Host address |
| port | 9090 | Host port |
| path | /api/v1/ | Path to base API endpoint |
| timeout | 30 | Timeout for requests |
| username | null |
HTTP Auth username |
| password | null |
HTTP Auth password |
| connectionHeaders | [] |
Connection headers |
| connectionType | CurlConnection::class | Class to use for connection. See below |
CurlConnection- pure php curl implementation. Used by default.GuzzleConnection- using guzzle 6.3+ library.
PApi currently has methods for all available endpoints provided by Prometheus.
| Call | Code | Prometheus compatibility | Official doc |
|---|---|---|---|
| Query | $client->getQuery('up', new \DateTimeImmutable('now'); |
>=1.0 | doc |
| QueryRange | $client->getQueryRange('up', new \DateTimeImmutable('today'), new \DateTimeImmutable('now'), '12h'); |
>=1.0 | doc |
| Series | $client->getSeries(['up'], new \DateTimeImmutable('-1 minute'), new \DateTimeImmutable('now'); |
>=1.0 | doc |
| Label Values | $client->getLabelValues('job'); |
>=1.0 | doc |
| Targets (active only) | $client->getTargets(); |
>=1.0 | doc |
| Alert Managers | $client->getAlertManagers(); |
>=1.0 | doc |
| Create snapshot | $client->createSnapshot(); |
>=2.1 | doc |
| Delete series | $client->deleteSeries(['up'], new DateTimeImmutable('today'), new DateTimeImmutable('now'); |
>=2.1 | doc |
| Clean tombstones | $client->cleanTombstones(); |
>=2.1 | doc |
| Get Config | $client->getConfig(); |
>=2.2 | doc |
| Get Flags | $client->getFlags(); |
>=2.2 | doc |