use Symfony\Component\HttpFoundation\Request; $server = $app['controllers_factory']; $requestTypes = array('live', 'req_time'); $server->get('/{type}/{requestId}/{grouping}', function ($type, $requestId, $grouping) use($app, $requestTypes) { if (!in_array($type, $requestTypes)) { $app->abort(404, "Type {$type} not allowed. Allowed types: " . implode(', ', $requestTypes)); } $date = null; if (stripos($requestId, '::') !== false) { list($requestId, $date) = explode('::', $requestId); } $request = getRequestById($app['db'], $type, $requestId, $date); if (!$request) { $app->abort(404, "Request #{$requestId} not found."); } Utils::checkUserAccess($app, $request['server_name']); $request['script_name'] = Utils::urlDecode($request['script_name']); $request = Utils::parseRequestTags($request); $request['timers'] = getTimers($app['db'], $type, $requestId, $date); $groupingTags = findGroupingTags($request['timers']); if (strlen($grouping)) { $grouping = preg_replace('/^grouping\\-/', '', $grouping); } if (empty($grouping)) { if (sizeof($groupingTags)) { if (in_array('group', $groupingTags)) { $grouping = 'group'; } else { $grouping = $groupingTags[0]; } } else {
$rowCount = getCPUPagesCount($app['db'], $serverName, $hostName); $result['rowCount'] = $rowCount; $pageCount = ceil($rowCount / $rowPerPage); $result['pageCount'] = $pageCount; if ($pageCount != 0) { if ($pageNum < 1 || $pageNum > $pageCount) { $app->abort(404, "Page {$pageNum} does not exist."); } } $startPos = ($pageNum - 1) * $rowPerPage; $result['hosts'] = getHosts($app['db'], $serverName); $result['pages'] = getCPUPages($app['db'], $serverName, $hostName, $startPos, $rowPerPage, $colOrder, $colDir); return $app['twig']->render('cpu_usage.html.twig', $result); })->value('hostName', 'all')->value('pageNum', 'page1')->value('colOrder', null)->value('colDir', null)->assert('pageNum', 'page\\d+')->bind('server_cpu_usage'); $server->match('/{serverName}/{hostName}/live', function (Request $request, $serverName, $hostName) use($app) { Utils::checkUserAccess($app, $serverName); // filter from session $liveFilter = $app['session']->get('filter_params'); if (!$liveFilter) { $liveFilter = array(); } if (!isset($liveFilter[$serverName])) { $liveFilter[$serverName] = array(); } $result = array('server_name' => $serverName, 'hostname' => $hostName, 'title' => 'Live / ' . $serverName, 'limit' => 100); if ($request->isXmlHttpRequest()) { $result['limit'] = 50; // save filter in session $liveFilter[$serverName]['req_time'] = $request->get('req_time'); $liveFilter[$serverName]['tags'] = $request->get('tags'); $app['session']->set('filter_params', $liveFilter);