承接 ge-tracker/influxdb-laravel 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ge-tracker/influxdb-laravel

Composer 安装命令:

composer require ge-tracker/influxdb-laravel

包简介

Provide InfluxDB connections to Laravel

README 文档

README

This package is a Laravel wrapper for the influxdb-php client. We utilise graham-campbell/manager to provide multiple connection interfaces.

Installation

This package requires PHP 7.4+, Laravel 8+ and works with InfluxDB 2.0/1.8+. For InfluxDB 1.7 or earlier, see the 1.x setup instructions in the next section.

  1. 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.

  2. Next, you should publish the application's configuration file

    $ php artisan vendor:publish

InfluxDB 1.x

To install a 1.7x compatible version, please install version 1.x of this package. You can view the 1.x configuration options on GitHub.

$ composer require "ge-tracker/influxdb-laravel:^1.0"

Configuration

This package's configuration, after publishing, will be located at config/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.

Usage

The underlying InfluxDB connection instance can be accessed via Facade or Dependency Injection. Unless specified, the package will use the main connection by default.

Facade

<?php

// create an array of points
$points = [
    new InfluxDB\Point(
        'test_metric', // name of the measurement
        null, // the measurement value
        ['host' => 'server01', 'region' => 'us-west'], // optional tags
        ['cpucount' => 10], // optional additional fields
        time() // Time precision has to be set to seconds!
    ),
    new InfluxDB\Point(
        'test_metric', // name of the measurement
        null, // the measurement value
        ['host' => 'server01', 'region' => 'us-west'], // optional tags
        ['cpucount' => 10], // optional additional fields
        time() // 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 the InfluxDBManager class:

<?php

namespace App;

use GeTracker\InfluxDBLaravel\InfluxDBManager;

class Foo
{
    public function __construct(
        protected InfluxDBManager $influxDb
    ) {
        $this->influxDB = $influxDB;
    }

    public function bar()
    {
        return $this->influxDb->getQueryBuilder()
            ->select('usage, idle')
            ->from('cpu')
            ->where([
                'time < now() -1d',
                "host='host01'",
            ])
            ->getResultSet();
    }
}

Connections

Both the InfluxDBManager and InfluxDB facade provide a connection() 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");

Reflective accessor

The influxdata/influxdb-client-php library removed several methods from their Point class such as getMeasurement, which are helpful for testing. This library features a reflective accessor to bring back this functionality.

$refPoint = RefPoint::from($points);
$refPoint[0]->getMeasurement()

Credits

统计信息

  • 总下载量: 6.34k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-10-21

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固