예제 #1
0
파일: timer.php 프로젝트: Devdits/pinboard
$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 {
            $grouping = null;
        }
예제 #2
0
function getHeavyPages($conn, $serverName, $hostName, $startPos, $rowCount, $colOrder, $colDir)
{
    $params = array('server_name' => $serverName, 'created_at' => date('Y-m-d H:i:s', strtotime('-1 day')));
    $hostCondition = '';
    if ($hostName != 'all') {
        $params['hostname'] = $hostName;
        $hostCondition = 'AND hostname = :hostname';
    }
    $orderBy = 'created_at DESC, mem_peak_usage DESC';
    if (null !== $colOrder) {
        $orderBy = generateOrderBy($colOrder, $colDir, 'ipm_mem_peak_usage_details');
    }
    $sql = '
        SELECT
            DISTINCT server_name, hostname, script_name, mem_peak_usage, tags, tags_cnt, created_at
        FROM
            ipm_mem_peak_usage_details
        WHERE
            server_name = :server_name
            ' . $hostCondition . '
            AND created_at > :created_at
        ORDER BY
            ' . $orderBy . '
        LIMIT
            ' . $startPos . ', ' . $rowCount . '
    ';
    $data = $conn->fetchAll($sql, $params);
    foreach ($data as &$item) {
        $item['script_name'] = Utils::urlDecode($item['script_name']);
        $item['mem_peak_usage'] = number_format($item['mem_peak_usage'], 0, '.', ',');
        $item = Utils::parseRequestTags($item);
    }
    return $data;
}