mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
69 lines
1.6 KiB
PHP
69 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* @author Stephen "TheCodeAssassin" Hoogendijk
|
|
*/
|
|
require 'vendor/autoload.php';
|
|
|
|
// vagrant ip
|
|
$host = '192.168.33.10';
|
|
|
|
|
|
function randFloat($min, $max)
|
|
{
|
|
$range = $max-$min;
|
|
$num = $min + $range * mt_rand(0, 32767)/32767;
|
|
|
|
$num = round($num, 4);
|
|
|
|
return ((float) $num);
|
|
}
|
|
|
|
$client = new \InfluxDB\Client($host);
|
|
|
|
$database = $client->selectDB('test');
|
|
|
|
if ($database->exists()) {
|
|
$database->drop();
|
|
}
|
|
|
|
$database->create(new \InfluxDB\Database\RetentionPolicy('test', '12w', 1, true));
|
|
|
|
|
|
$start = microtime(true);
|
|
|
|
$countries = ['nl', 'gb', 'us', 'be', 'th', 'jp', 'nl', 'sa'];
|
|
$colors = ['orange', 'black', 'yellow', 'white', 'red', 'purple'];
|
|
$points = [];
|
|
|
|
for ($i=0; $i < 1000; $i++) {
|
|
$points[] = new \InfluxDB\Point(
|
|
'flags',
|
|
randFloat(1, 999),
|
|
['country' => $countries[array_rand($countries)]],
|
|
['color' => $colors[array_rand($colors)]],
|
|
(int) shell_exec('date +%s%N')+mt_rand(1,1000)
|
|
);
|
|
};
|
|
|
|
// insert the points
|
|
$database->writePoints($points);
|
|
|
|
$end = microtime(true);
|
|
|
|
$country = $countries[array_rand($countries)];
|
|
$color = $colors[array_rand($colors)];
|
|
|
|
$results = $database->query("SELECT * FROM flags WHERE country = '$country' LIMIT 5")->getPoints();
|
|
$results2 = $database->query("SELECT * FROM flags WHERE color = '$color' LIMIT 5")->getPoints();
|
|
|
|
echo "Showing top 5 flags from country $country:" . PHP_EOL;
|
|
print_r($results);
|
|
echo PHP_EOL;
|
|
|
|
echo "Showing top 5 flags with color $color:" . PHP_EOL;
|
|
print_r($results2);
|
|
|
|
|
|
echo PHP_EOL;
|
|
echo sprintf('Executed 1000 inserts in %.2f seconds', $end - $start);
|