protected function getStatsData($chartData) { $kurogoOption = new KurogoStatsOption(); $type = isset($chartData['stattype']) ? $chartData['stattype'] : 'count'; $kurogoOption->setType($type); if ($chartData['service']) { $kurogoOption->setService($chartData['service']); unset($chartData['service']); } if ($chartData['start']) { $kurogoOption->addFilter('timestamp', 'GTE', $chartData['start']); } if ($chartData['end']) { $kurogoOption->addFilter('timestamp', 'LTE', $chartData['end']); } if (isset($chartData['sort'])) { $kurogoOption->setSortField($chartData['sort']); } if (isset($chartData['sort_dir'])) { $kurogoOption->setSortDir($chartData['sort_dir']); } if (isset($chartData['group'])) { $kurogoOption->setGroup($chartData['group']); } if (isset($chartData['field'])) { $kurogoOption->setField($chartData['field']); } if (isset($chartData['top'])) { $kurogoOption->setLimit($chartData['top']); } foreach (KurogoStats::validFields() as $field) { if (isset($chartData[$field])) { $kurogoOption->addFilter($field, 'EQ', $chartData[$field]); } } return KurogoStats::retrieveStats($kurogoOption, $chartData); }