2014-09-12 23:05:29 +02:00
2014-09-11 15:04:12 +02:00
2014-09-11 15:04:12 +02:00
2014-09-12 08:25:51 +02:00
2014-09-11 09:50:43 +02:00
2014-09-11 15:04:12 +02:00
2014-09-12 20:20:23 +02:00

InfluxDB PHP SDK

  • Build Status
  • Dependency Status

Send metrics to InfluxDB.

$options = new \InfluxDB\Options();

$client = new \InfluxDB\Client();
$client->setAdapter(new \InfluxDB\Adapter\UdpAdapter($options));

$client->mark("search", [
    "query" => "php"
]);

Install it

Just use composer

php composer.phar require corley/influxdb-sdk:*

Or place it in your require section

{
  "require": {
    // ...
    "corley/influxdb-sdk": "*"
  }
}

Send data using HTTP json API

Actually we using Guzzle as HTTP client

$influx->mark("tcp.test", ["mark" => "element"]);

Query InfluxDB

You can query the time series database using the query method.

$influx->query("select * from mine");
$influx->query("select * from mine", "s"); // with time_precision

You can query the database only if the adapter is queryable (implements QueryableInterface), actually GuzzleAdapter.

The adapter returns the json decoded body of the InfluxDB response, something like:

array(1) {
  [0] =>
  class stdClass#1 (3) {
    public $name =>
    string(8) "tcp.test"
    public $columns =>
    array(3) {
      [0] =>
      string(4) "time"
      [1] =>
      string(15) "sequence_number"
      [2] =>
      string(4) "mark"
    }
    public $points =>
    array(1) {
      [0] =>
      array(3) {
        [0] =>
        int(1410545635590)
        [1] =>
        int(2390001)
        [2] =>
        string(7) "element"
      }
    }
  }
}

Prepare lib dependencies

Use your DiC or Service Locator in order to provide a configured client

<?php

use InfluxDB\Client;
use InfluxDB\Options;
use InfluxDB\Adapter\GuzzleAdapter as InfluxHttpAdapter;
use GuzzleHttp\Client as GuzzleHttpClient;

$options = new Options();
$options->setHost("analytics.mine.domain.tld");
$options->setPort(8086);
$options->setUsername("root");
$options->setPassword("root");
$options->setDatabase("mine");

$guzzleHttp = new GuzzleHttpClient();
$adapter = new InfluxHttpAdapter($guzzleHttp, $options);

$influx = new Client();
$influx->setAdapter($adapter);

$influx->mark("tcp.test", ["mark" => "element"]);
S
Description
No description provided
Readme
446 MiB
Languages
PHP 85.1%
JavaScript 6.6%
Blade 4.3%
CSS 1.8%
Python 1.1%
Other 1%