function getRequestPerSecReview($conn, $serverName, $hostName, $period) { $params = array('server_name' => $serverName, 'created_at' => date('Y-m-d H:i:s', strtotime('-' . $period))); $hostCondition = ''; if ($hostName != 'all') { $params['hostname'] = $hostName; $hostCondition = 'AND hostname = :hostname'; } $sql = ' SELECT created_at, avg(req_per_sec) as req_per_sec, hostname FROM ipm_report_by_hostname_and_server WHERE server_name = :server_name ' . $hostCondition . ' AND created_at > :created_at GROUP BY ' . SqlUtils::getDateGroupExpression($period) . ', hostname ORDER BY created_at '; $data = $conn->fetchAll($sql, $params); $rpqData = array('data' => array(), 'hosts' => array()); $hostCount = 0; foreach ($data as &$item) { $t = strtotime($item['created_at']); $date = date('Y,', $t) . (date('n', $t) - 1) . date(',d,H,i', $t); $parsedHostname = '_' . preg_replace('/\\W/', '_', $item['hostname']); $rpqData['data'][$date][] = array('created_at' => $item['created_at'], 'hostname' => $item['hostname'], 'parsed_hostname' => $parsedHostname, 'req_per_sec' => number_format($item['req_per_sec'], 2, '.', '')); if (!isset($rpqData['hosts'][$parsedHostname])) { $rpqData['hosts'][$parsedHostname]['color'] = Utils::generateColor(); $rpqData['hosts'][$parsedHostname]['host'] = $item['hostname']; $hostCount++; } } if ($hostCount > 1) { $sql = ' SELECT created_at, avg(req_per_sec) as req_per_sec FROM ipm_report_by_server_name USE INDEX (irsn_ca) WHERE server_name = :server_name AND created_at > :created_at GROUP BY ' . SqlUtils::getDateGroupExpression($period) . ' ORDER BY created_at '; $data = $conn->fetchAll($sql, $params); $rpqData['hosts']['_']['color'] = Utils::generateColor(); $rpqData['hosts']['_']['host'] = '_'; foreach ($data as &$item) { $t = strtotime($item['created_at']); $date = date('Y,', $t) . (date('n', $t) - 1) . date(',d,H,i', $t); $rpqData['data'][$date][] = array('created_at' => $item['created_at'], 'hostname' => '_', 'parsed_hostname' => '_', 'req_per_sec' => number_format($item['req_per_sec'], 2, '.', '')); } } ksort($rpqData['hosts']); return $rpqData; }