cdn77 / papi
PApi - PHP Api client library for Prometheus
Installs: 2 035
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 9
Forks: 1
Open Issues: 0
Requires
- php: >=7.1
- ext-curl: *
- skrz/meta: ^3.1
- symfony/finder: ~2.7|~3.0|~4.0
- symfony/yaml: ~4.0
Requires (Dev)
- cdn77/coding-standard: ^0.5
- guzzlehttp/guzzle: ^6.3
- phpstan/phpstan: ^0.9
- phpstan/phpstan-strict-rules: ^0.9
- phpunit/phpunit: ^6.3
- slevomat/coding-standard: ^4.0
Suggests
- guzzlehttp/guzzle: ^6.3
This package is not auto-updated.
Last update: 2020-03-19 10:48:09 UTC
README
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.
Instalation
Use composer to add PApi as dependency:
$ composer install cdn77/papi
Usage
Create a client
<?php
use PApi\Client;
require __DIR__ . '/vendor/autoload.php';
$client = new Client([
'host' => 'my-prometheus.com',
]);
Available options
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 |
Available connection classes
CurlConnection
- pure php curl implementation. Used by default.GuzzleConnection
- using guzzle 6.3+ library.
Available calls
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 |