Skip to content
This repository has been archived by the owner on Mar 19, 2020. It is now read-only.
/ papi Public archive

(Abandoned) PApi - PHP Api client library for Prometheus

Notifications You must be signed in to change notification settings

cdn77/papi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PApi - PHP Api client library for Prometheus

Build Status

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