예제 #1
0
파일: timer.php 프로젝트: Devdits/pinboard
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 {
예제 #2
0
    $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);