1. Go to this page and download the library: Download magnusjt/mongotd 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/ */
magnusjt / mongotd example snippets
$host = '127.0.0.1'; // Or mongodb connection string
$dbName = 'mongotd';
$colPrefix = 'mongotd'; // All collections used by mongotd will have this prefix and an underscore
$conn = new \Mongotd\Connection($host, $dbName, $colPrefix);
$from = new DateTime('-1 day');
$to = new DateTime('now');
$nids = array(); // Limit results to these nids, no limit if empty
$sids = array(); // Limit results to these sids, no limit if empty
$minNumberOfAnomalies = 1;
$maxResults = 20;
$sequence = [
new FindAnomalies($conn, $start, $end, $nids, $sids, $minCount, $limit),
new AddAnomalyState($start, $end, Resolution::FIVE_MINUTES)
];
$pipeline = new Pipeline();
$result = $pipeline->run($sequence);
/*
$results is now an array of the following form:
$result[] = array(
'nid' => $nid,
'sid' => $sid,
'count' => $count,
'anomalies' => $anomalies,
'state' => $state // Added by Mongotd\Pipeline\AddAnomalyState
);
Where $anomalies is an array of objects of the class Mongotd\Anomaly
$count is just the length of the $anomalies array.
*/
`
$storage->store([
new CounterValue($sid, $nid, $datetime, $value, $isIncremental)
]);
`
$start = new DateTime('2015-11-01 00:00:00');
$end = new DateTime('2015-12-01 00:00:00');
DateTimeHelper::normalizeTimeRange($start, $end, Resolution::DAY);
$sequence = [
new Find($conn, $sid, $nid, $start, $end),
new RollupTime(Resolution::DAY, Aggregation::Sum),
new Pad(Resolution::DAY, $start, $end)
];
$pipeline = new Pipeline();
$series = $pipeline->run($sequence);
`
$sequence = [
[
[
new Find($conn, $sid, $nid1, $start, $end),
new RollupTime(Resolution::FIVE_MINUTES, Aggregation::SUM),
new Pad(Resolution::FIVE_MINUTES, $start, $end)
],
[
new Find($conn, $sid, $nid2, $start, $end),
new RollupTime(Resolution::FIVE_MINUTES, Aggregation::SUM),
new Pad(Resolution::FIVE_MINUTES, $start, $end)
]
],
new RollupSpace(Aggregation::SUM),
new RollupTime(Resolution::DAY, Aggregation::SUM),
new Pad(Resolution::DAY, $start, $end)
];
$pipeline = new Pipeline();
$series = $pipeline->run($sequence);
`
$formula = '([sid=1,nid=1,agg=1] / [sid=2,nid=1,agg=1]) * 100';
$parser = new Parser();
$ast = $parser->parse($formula);
$astEvaluator = new AstEvaluator();
$astEvaluator->setVariableEvaluatorCallback(function($options) use($conn, $start, $end)){
$pipeline = new Pipeline();
return $pipeline->run([
new Find($conn, $options['sid'], $options['nid'], $start, $end),
new RollupTime(Resolution::FIVE_MINUTES, $options['agg']),
new Pad(Resolution::FIVE_MINUTES, $start, $end)
])->vals;
]);
$sequence = [
new Formula($ast, $astEvaluator),
new RollupTime(Resolution::DAY, Aggregation::SUM),
new Pad(Resolution::DAY, $start, $end)
];
$pipeline = new Pipeline();
$series = $pipeline->run($sequence);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.