mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-27 16:08:55 +02:00
b835c3a044d155208027fde3d8d8e52a3f760f93
InfluxDB PHP SDK
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"]);
Languages
PHP
37.2%
JavaScript
33.6%
HTML
24.5%
CSS
3%
Less
0.7%
Other
0.8%