PHP code example of influxdata / influxdb-client-php
1. Go to this page and download the library: Download influxdata/influxdb-client-php library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
influxdata / influxdb-client-php example snippets
$client = new InfluxDB2\Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"precision" => InfluxDB2\Model\WritePrecision::NS
]);
$curlOptions = [
CURLOPT_CONNECTTIMEOUT => 30, // The number of seconds to wait while trying to connect.
];
$curlClient = new Http\Client\Curl\Client(
Http\Discovery\Psr17FactoryDiscovery::findRequestFactory(),
Http\Discovery\Psr17FactoryDiscovery::findStreamFactory(),
$curlOptions
);
$client = new Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"httpClient" => $curlClient
]);
$this->client = new Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"precision" => WritePrecision::NS,
"org" => "my-org",
"debug" => false
]);
$this->queryApi = $this->client->createQueryApi();
$result = $this->queryApi->queryRaw(
'from(bucket:"my-bucket") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()');
$this->client = new Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"precision" => WritePrecision::NS,
"org" => "my-org",
"debug" => false
]);
$this->queryApi = $this->client->createQueryApi();
$result = $this->queryApi->query(
'from(bucket:"my-bucket") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()');
header('Content-type:application/json;charset=utf-8');
echo json_encode( $result, JSON_PRETTY_PRINT ) ;
$this->client = new Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"precision" => WritePrecision::NS,
"org" => "my-org",
"debug" => false
]);
$this->queryApi = $this->client->createQueryApi();
$parser = $this->queryApi->queryStream(
'from(bucket:"my-bucket") |> range(start: 1970-01-01T00:00:00.000000001Z) |> last()');
foreach ($parser->each() as $record)
{
...
}
InfluxDB2\Client;
use InfluxDB2\Model\Query;
use InfluxDB2\Point;
use InfluxDB2\WriteType as WriteType;
$url = "https://us-west-2-1.aws.cloud2.influxdata.com";
$organization = 'my-org';
$bucket = 'my-bucket';
$token = 'my-token';
$client = new Client([
"url" => $url,
"token" => $token,
"bucket" => $bucket,
"org" => $organization,
"precision" => InfluxDB2\Model\WritePrecision::NS,
"debug" => false
]);
$writeApi = $client->createWriteApi(["writeType" => WriteType::SYNCHRONOUS]);
$queryApi = $client->createQueryApi();
$today = new DateTime("now");
$yesterday = $today->sub(new DateInterval("P1D"));
$p = new Point("temperature");
$p->addTag("location", "north")->addField("value", 60)->time($yesterday);
$writeApi->write($p);
$writeApi->close();
//
// Query range start parameter using duration
//
$parameterizedQuery = "from(bucket: params.bucketParam) |> range(start: duration(v: params.startParam))";
$query = new Query();
$query->setQuery($parameterizedQuery);
$query->setParams(["bucketParam" => "my-bucket", "startParam" => "-1d"]);
$tables = $queryApi->query($query);
foreach ($tables as $table) {
foreach ($table->records as $record) {
var_export($record->values);
}
}
//
// Query range start parameter using DateTime
//
$parameterizedQuery = "from(bucket: params.bucketParam) |> range(start: time(v: params.startParam))";
$query->setParams(["bucketParam" => "my-bucket", "startParam" => $yesterday]);
$query->setQuery($parameterizedQuery);
$tables = $queryApi->query($query);
foreach ($tables as $table) {
foreach ($table->records as $record) {
var_export($record->values);
}
}
$client->close();
$client = new InfluxDB2\Client(["url" => "http://localhost:8086", "token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"precision" => InfluxDB2\Model\WritePrecision::NS
]);
$write_api = $client->createWriteApi();
$write_api->write('h2o,location=west value=33i 15');
use InfluxDB2\Client;
use InfluxDB2\WriteType as WriteType;
$client = new Client(["url" => "http://localhost:8086", "token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"precision" => InfluxDB2\Model\WritePrecision::NS
]);
$writeApi = $client->createWriteApi(
["writeType" => WriteType::BATCHING, 'batchSize' => 1000]);
foreach (range(1, 10000) as $number) {
$writeApi->write("mem,host=aws_europe,type=batch value=1i $number");
}
// flush remaining data
$writeApi->close();
$client = new InfluxDB2\Client(["url" => "http://localhost:8086", "token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"precision" => \InfluxDB2\Model\WritePrecision::NS
]);
$client = new InfluxDB2\Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
]);
$writeApi = $client->createWriteApi();
$writeApi->write('h2o,location=west value=33i 15', \InfluxDB2\Model\WritePrecision::MS);
$client = new InfluxDB2\Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
]);
$client = new InfluxDB2\Client(["url" => "http://localhost:8086", "token" => "my-token"]);
$writeApi = $client->createWriteApi();
$writeApi->write('h2o,location=west value=33i 15', \InfluxDB2\Model\WritePrecision::MS, "production-bucket", "customer-1");
$client = new InfluxDB2\Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"precision" => InfluxDB2\Model\WritePrecision::US
]);
$writeApi = $client->createWriteApi();
//data in Point structure
$point=InfluxDB2\Point::measurement("h2o")
->addTag("location", "europe")
->addField("level",2)
->time(microtime(true));
$writeApi->write($point);
//data in array structure
$dataArray = ['name' => 'cpu',
'tags' => ['host' => 'server_nl', 'region' => 'us'],
'fields' => ['internal' => 5, 'external' => 6],
'time' => microtime(true)];
$writeApi->write($dataArray);
//write lineprotocol
$writeApi->write('h2o,location=west value=33i 15');
$this->client = new Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"precision" => WritePrecision::NS,
"org" => "my-org",
"tags" => ['id' => '132-987-655',
'hostname' => '${env.Hostname}']
]);
$writeApi = $this->client->createWriteApi(null, ['data_center' => '${env.data_center}']);
$writeApi->pointSettings->addDefaultTag('customer', 'California Miner');
$point = Point::measurement('h2o')
->addTag('location', 'europe')
->addField('level', 2);
$this->writeApi->write($point);
use InfluxDB2\Client;
use InfluxDB2\Model\BucketRetentionRules;
use InfluxDB2\Model\Organization;
use InfluxDB2\Model\PostBucketRequest;
use InfluxDB2\Service\BucketsService;
use InfluxDB2\Service\OrganizationsService;
$organization = 'my-org';
$bucket = 'my-bucket';
$token = 'my-token';
$client = new Client([
"url" => "http://localhost:8086",
"token" => $token,
"bucket" => $bucket,
"org" => $organization,
"precision" => InfluxDB2\Model\WritePrecision::S
]);
function findMyOrg($client): ?Organization
{
/** @var OrganizationsService $orgService */
$orgService = $client->createService(OrganizationsService::class);
$orgs = $orgService->getOrgs()->getOrgs();
foreach ($orgs as $org) {
if ($org->getName() == $client->options["org"]) {
return $org;
}
}
return null;
}
$bucketsService = $client->createService(BucketsService::class);
$rule = new BucketRetentionRules();
$rule->setEverySeconds(3600);
$bucketName = "example-bucket-" . microtime();
$bucketRequest = new PostBucketRequest();
$bucketRequest->setName($bucketName)
->setRetentionRules([$rule])
->setOrgId(findMyOrg($client)->getId());
//create bucket
$respBucket = $bucketsService->postBuckets($bucketRequest);
print $respBucket;
$client->close();
$client = new InfluxDB2\Client(["url" => "http://localhost:8086", "token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"precision" => InfluxDB2\Model\WritePrecision::NS,
"udpPort" => 8094,
"ipVersion" => 6,
]);
$writer = $client->createUdpWriter();
$writer->write('h2o,location=west value=33i 15');
$writer->close();
/**
* Shows how to delete data from InfluxDB by client
*/
use InfluxDB2\Client;
use InfluxDB2\Model\DeletePredicateRequest;
use InfluxDB2\Service\DeleteService;
$url = 'http://localhost:8086';
$token = 'my-token';
$org = 'my-org';
$bucket = 'my-bucket';
$client = new Client([
"url" => $url,
"token" => $token,
"bucket" => $bucket,
"org" => $org,
"precision" => InfluxDB2\Model\WritePrecision::S
]);
//
// Delete data by measurement and tag value
//
/** @var DeleteService $service */
$service = $client->createService(DeleteService::class);
$predicate = new DeletePredicateRequest();
$predicate->setStart(DateTime::createFromFormat('Y', '2020'));
$predicate->setStop(new DateTime());
$predicate->setPredicate("_measurement=\"mem\" AND host=\"host1\"");
$service->postDelete($predicate, null, $org, $bucket);
$client->close();
$client = new InfluxDB2\Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"proxy" => "http://192.168.16.1:10",
]);
$client = new InfluxDB2\Client([
"url" => "http://localhost:8086",
"token" => "my-token",
"bucket" => "my-bucket",
"org" => "my-org",
"allow_redirects" => false,
]);
composer
composer