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 |