use Mongotd\StorageMiddleware\FilterCounterValues; use Mongotd\StorageMiddleware\FindAnomaliesUsingHwTest; use Mongotd\StorageMiddleware\FindAnomaliesUsingKsTest; use Mongotd\StorageMiddleware\FindAnomaliesUsingSigmaTest; use Mongotd\StorageMiddleware\InsertCounterValues; use Mongotd\StorageMiddleware\StoreAnomalies; $config = json_decode(file_get_contents('loadTestConfig.json'), true); date_default_timezone_set($config['timezone']); $start = new \DateTime($config['starttime']); $conn = new Connection($config['dbhost'], $config['dbname'], $config['dbprefix']); $conn->db()->drop(); $conn->createIndexes(); $pipelineFactory = new Factory($conn); $pipeline = new Pipeline(); $storage = new Storage(); $storage->addMiddleware(new FilterCounterValues()); $storage->addMiddleware(new CalculateDeltas($conn, new Logger(null), $config['insertIntervalInSeconds'])); $storage->addMiddleware(new InsertCounterValues($conn)); if ($config['anomalyDetectionMethod'] == 'ks') { $storage->addMiddleware(new FindAnomaliesUsingKsTest($conn)); $storage->addMiddleware(new StoreAnomalies($conn)); } else { if ($config['anomalyDetectionMethod'] == 'hw') { $storage->addMiddleware(new FindAnomaliesUsingHwTest($conn)); $storage->addMiddleware(new StoreAnomalies($conn)); } else { if ($config['anomalyDetectionMethod'] == 'sigma') { $storage->addMiddleware(new FindAnomaliesUsingSigmaTest($conn)); $storage->addMiddleware(new StoreAnomalies($conn)); } }
use Mongotd\Pipeline\Factory; use Mongotd\Pipeline\Pipeline; use Mongotd\Storage; use Mongotd\StorageMiddleware\FilterCounterValues; use Mongotd\StorageMiddleware\InsertCounterValues; $config = json_decode(file_get_contents('retrievalLoadTestConfig.json'), true); date_default_timezone_set($config['timezone']); $start = new \DateTime($config['starttime']); $end = new \DateTime('now'); $conn = new Connection($config['dbhost'], $config['dbname'], $config['dbprefix']); $sid = '1'; $nid = '1'; $pipelineFactory = new Factory($conn); $pipeline = new Pipeline(); $storage = new Storage(); $storage->addMiddleware(new FilterCounterValues()); $storage->addMiddleware(new InsertCounterValues($conn)); if ($config['doInsertion']) { $conn->db()->drop(); $conn->createIndexes(); $dateperiod = new \DatePeriod($start, DateInterval::createFromDateString($config['insertIntervalInSeconds'] . ' seconds'), $end); $cvs = []; foreach ($dateperiod as $datetime) { $cvs[] = new CounterValue($sid, $nid, $datetime, rand()); } $storage->store($cvs); echo "Insertion done\n"; } $timerStart = microtime(true); $sequence = $pipelineFactory->createMultiAction($sid, $nid, $start, $end, $config['retrieveResolution'], $config['retrieveAggregation']); $pipeline->run($sequence);
use Mongotd\Pipeline\Pipeline; use Mongotd\Storage; use Mongotd\StorageMiddleware\FilterCounterValues; use Mongotd\StorageMiddleware\InsertCounterValues; use Mongotd\StorageMiddleware\FindAnomaliesUsingSigmaTest; use Mongotd\StorageMiddleware\FindAnomaliesUsingHwTest; use Mongotd\StorageMiddleware\FindAnomaliesUsingKsTest; use Mongotd\StorageMiddleware\StoreAnomalies; $config = json_decode(file_get_contents('anomalyTestConfig.json'), true); $conn = new Connection($config['dbhost'], $config['dbname'], $config['dbprefix']); $conn->db()->drop(); $conn->createIndexes(); $pipelineFactory = new Factory($conn); $pipeline = new Pipeline(); $storage = new Storage(); $storage->addMiddleware(new FilterCounterValues()); $storage->addMiddleware(new InsertCounterValues($conn)); if ($config['anomalyDetectionMethod'] == 'ks') { $storage->addMiddleware(new FindAnomaliesUsingKsTest($conn)); } else { if ($config['anomalyDetectionMethod'] == 'hw') { $storage->addMiddleware(new FindAnomaliesUsingHwTest($conn)); } else { if ($config['anomalyDetectionMethod'] == 'sigma') { $storage->addMiddleware(new FindAnomaliesUsingSigmaTest($conn)); } else { throw new Exception('Unknown anomaly scan method'); } } } $storage->addMiddleware(new StoreAnomalies($conn));