- Notifications
You must be signed in to change notification settings - Fork1
ge-tracker/influxdb-laravel
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This package is a Laravel wrapper for theinfluxdb-php client. We utilisegraham-campbell/manager to provide multiple connection interfaces.
This package requires PHP 7.4+, Laravel 8+ and works with InfluxDB 2.0/1.8+. For InfluxDB 1.7 or earlier, see the1.x setup instructions in the next section.
To install the latest version of the package, run the following command in your terminal:
$ composer require ge-tracker/influxdb-laravel
Laravel will auto-discover the package's service provider, located at
GeTracker\InfluxDBLaravel\InfluxDBLaravelServiceProvider.Next, you should publish the application's configuration file
$ php artisan vendor:publish
To install a 1.7x compatible version, please install version 1.x of this package. You canview the 1.x configuration options on GitHub.
$ composer require"ge-tracker/influxdb-laravel:^1.0"This package's configuration, after publishing, will be located atconfig/influxdb.php.
Default Connection Name
This option ('default') is where you may specify which of the connections below you wish to use as your default connection for all work. Of course, you may use many connections at once using the manager class. The default value for this setting is'main'.
InfluxDB Connections
This option ('connections') is where each of the connections are setup for your application. An example configuration has been included, but you may add as many connections as you would like.
The underlying InfluxDB connection instance can be accessed via Facade or Dependency Injection. Unless specified, the package will use themain connection by default.
Facade
<?php// create an array of points$points = [newInfluxDB\Point('test_metric',// name of the measurementnull,// the measurement value ['host' =>'server01','region' =>'us-west'],// optional tags ['cpucount' =>10],// optional additional fieldstime()// Time precision has to be set to seconds! ),newInfluxDB\Point('test_metric',// name of the measurementnull,// the measurement value ['host' =>'server01','region' =>'us-west'],// optional tags ['cpucount' =>10],// optional additional fieldstime()// Time precision has to be set to seconds! )];$result = InfluxDB::writePoints($points, \InfluxDB\Database::PRECISION_SECONDS);
Dependency Injection
DI can be used by type-hinting theInfluxDBManager class:
<?phpnamespaceApp;useGeTracker\InfluxDBLaravel\InfluxDBManager;class Foo{publicfunction__construct(protectedInfluxDBManager$influxDb ) {$this->influxDB =$influxDB; }publicfunctionbar() {return$this->influxDb->getQueryBuilder() ->select('usage, idle') ->from('cpu') ->where(['time < now() -1d',"host='host01'", ]) ->getResultSet(); }}
Both theInfluxDBManager andInfluxDB facade provide aconnection() method, which will allow another InfluxDB connection to be interacted with:
// The `main` connection will be used$manager->query("SELECT * FROM cpu");// The `alternative` connection will be used$manager->connection('alternative')->query("SELECT * FROM cpu");
Theinfluxdata/influxdb-client-php library removed several methods from theirPoint class such asgetMeasurement, which are helpful for testing. This library features a reflective accessor to bring back this functionality.
$refPoint = RefPoint::from($points);$refPoint[0]->getMeasurement()
About
This package is a Laravel wrapper for the influxdb-php client.
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.