private static function send_mail($server_cfg, $game_cfg, $report)
 {
     $to = "";
     $random_hash = md5(date('r', time()));
     $mime_boundary = "==Multipart_Boundary_x{$random_hash}x";
     if ($game_cfg === null) {
         $subject = "Instance Utilization Summary";
         $bcc = $server_cfg["instance_report_mail_recipients"];
         $headers = 'From: ' . $server_cfg["sender"] . "\r\n" . 'Bcc: ' . $bcc . "\r\n" . "Content-Type: multipart/mixed;" . " boundary=\"{$mime_boundary}\"" . 'X-Mailer: PHP/' . phpversion();
         $HTMLMessage = file_get_contents($report);
         $tidy = new tidy();
         $tidy->parseString($HTMLMessage);
         $tidy->cleanRepair();
         $message = "\n\n" . "--{$mime_boundary}\n" . "Content-Type:text/html; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $tidy . "\n\n";
         $reportClass = new ReportCollector($server_cfg);
         $data = $reportClass->generateCSV();
         $message .= "--{$mime_boundary}\n" . "Content-Type:text/csv; \n" . " name=zPerfmonUtilTrend_" . date("MjY") . ".csv \n" . "Content-Transfer-Encoding: 7bit\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n";
         mail($to, $subject, $message, $headers);
     } else {
         $subject = "Instance Utilization report for {$game_cfg['name']}";
         $bcc = $game_cfg["instance_report_mail_recipients"];
         $headers = 'From: ' . $server_cfg["sender"] . "\r\n" . 'Bcc: ' . $bcc . "\r\n" . 'Content-Type: text/HTML' . "\r\n" . 'X-Mailer: PHP/' . phpversion();
         $message = file_get_contents($report);
         $tidy = new tidy();
         $tidy->parseString($message);
         $tidy->cleanRepair();
         mail($to, $subject, $tidy, $headers);
     }
 }
function collectConditions()
{
    $collector = new ReportCollector();
    $collector->addToCondsFromRequest(TRUE, "add_user_save_id");
    $collector->addToCondsIfNotEq("type", "All");
    $collector->addToCondsFromRequest(TRUE, "date_from", "date_from_unit");
    $collector->addToCondsFromRequest(TRUE, "date_to", "date_to_unit");
    $collector->addToCondsFromRequest(TRUE, "user_id");
    $collector->addToCondsFromRequest(TRUE, "username");
    $collector->addToCondsIfNotEq("admin", "All");
    return $collector->getConds();
}
function print_instances_detail($game)
{
    $reportDataCollector = new ReportCollector($GLOBALS['server_cfg']);
    $tbl_struct = array(array("label" => "Instance Class", "bold" => 1), array("label" => "Total Instances", "align" => "right"), array("label" => "DAU per Instance", "align" => "right"), array("label" => "Optimal Instance <br/> count<sup>2</sup>", "align" => "right"), array("label" => "% Slack<sup>3</sup>", "align" => "right"));
    $tbl_data = array();
    global $instance_util_obj;
    $instances = $instance_util_obj->get_instances_detail_data();
    $total = $instance_util_obj->get_game_summary();
    $dau = $instance_util_obj->get_dau();
    $instances = sort_by_instance_count($instances);
    $instances["TOTAL"] = $total;
    //add total data to the bottom
    $i = 0;
    foreach ($instances as $class => $data) {
        if ($data["count"] == null || $data["count"] == 0) {
            //if instance count is 0, don't show in report
            continue;
        }
        $dau_per_instance = round($dau / $data["count"]);
        if ($data["optimal_instance_count"] == 0) {
            $slack = NA;
            $optimal_count = NA;
        } else {
            $slack = number_format(($data["count"] - $data["optimal_instance_count"]) * 100 / $data["count"], 2) . "%";
            $optimal_count = number_format($data["optimal_instance_count"]);
        }
        /*
         * Review Comment :- create a function for this 
         * not creating a function as the no of parameters are too many 
         * and creating a fn would not be helpful
         */
        if (isset($_GET['store_report']) && $_GET['store_report'] == 'true') {
            $report_data['class_name'] = $class;
            $report_data['game'] = $game;
            $report_data['total_instance'] = $data["count"];
            $report_data['DAU_per_instance'] = $dau_per_instance;
            $report_data['optimal_instance_count'] = $data["optimal_instance_count"];
            if ($data["count"] > 0) {
                $report_data['slack_per'] = ($data["count"] - $data["optimal_instance_count"]) * 100 / $data["count"];
            } else {
                $report_data['slack_per'] = 0;
            }
            $reportDataCollector->insertInstanceClassSummary($report_data);
        }
        $tbl_data[$i][] = $class;
        //instance class
        $tbl_data[$i][] = number_format($data["count"]);
        //instances
        $tbl_data[$i][] = number_format($dau_per_instance);
        //$tbl_data[$i][] = number_format($data["cost"]); //total cost
        $tbl_data[$i][] = $optimal_count;
        //recommended instance count
        $tbl_data[$i][] = format_slack($slack);
        $i++;
    }
    $markup = ReportTableMarkup::get_table_markup($tbl_struct, $tbl_data);
    echo $markup;
}
function get_games_summary_info($games, $zc = 0)
{
    $reportDataCollector = new ReportCollector($GLOBALS['server_cfg']);
    $dataArr = array();
    $cost_per_user_min = 1000;
    foreach ($games as $game) {
        $instance_util_obj = new InstanceUtilAdapter($game);
        $data = $instance_util_obj->get_game_summary();
        if ($data["rps"] == 0 or $data["dau"] === NULL) {
            //dont show games whose data is unavailable
            continue;
        }
        $cost_per_user = round($data["cost"] / $data["dau"], 4);
        if ($cost_per_user > 0) {
            $cost_per_user_min = min($cost_per_user, $cost_per_user_min);
        }
        $slack = round(($data["count"] - $data["optimal_instance_count"]) * 100 / $data["count"], 2);
        $dataArr[$game] = array("count" => $data["count"], "rps" => round($data["rps"]), "cost" => $data["cost"], "dau" => $data["dau"], "dau_per_instance" => round($data["dau"] / $data["count"]), "cost_per_user" => $cost_per_user, "optimal_instance_count" => $data["optimal_instance_count"], "slack" => $slack);
        /*
         * Review Comment :- create a function for this 
         * not creating a function as the no of parameters are too many 
         * and creating a fn would not be helpful
         */
        if ($_GET['store_report'] == 'true') {
            // inserting data in the report instance_utilization table
            $data_utilization['game'] = $game;
            $data_utilization['total_instance'] = $data["count"];
            $data_utilization['DAU'] = $data["dau"];
            $data_utilization['DAU_per_instance'] = round($data["dau"] / $data["count"]);
            $data_utilization['optimal_instance_count'] = $data["optimal_instance_count"];
            $data_utilization['slack_per'] = $slack;
            $data_utilization['cloud_id'] = $zc;
            $reportDataCollector->insertInstanceUtilization($data_utilization);
        }
    }
    $dataArr = sort_by_dau($dataArr);
    global $server_cfg;
    if (isset($server_cfg["hostname"])) {
        $hostname = $server_cfg["hostname"];
    } else {
        $hostname = "*****@*****.**";
    }
    return $dataArr;
}
Example #5
0
function collectConditions()
{
    $collector = new ReportCollector();
    $collector->addToCondsFromRequest(TRUE, "user_ids");
    $collector->addToCondsIfNotEq("action", "All");
    $collector->addToCondsIfNotEq("admin", "All");
    $collector->addToCondsFromRequest(TRUE, "change_time_from", "change_time_from_unit");
    $collector->addToCondsFromRequest(TRUE, "change_time_to", "change_time_to_unit");
    $collector->addToCondsFromRequest(TRUE, "per_user_credit", "per_user_credit_op");
    $collector->addToCondsFromRequest(TRUE, "admin_credit", "admin_credit_op");
    $collector->addToCondsFromRequest(FALSE, "show_total_per_user_credit");
    $collector->addToCondsFromRequest(FALSE, "show_total_admin_credit");
    $collector->addToCondsFromRequest(TRUE, "remote_addr");
    return $collector->getConds();
}
Example #6
0
function collectConditions()
{
    $collector = new ReportCollector();
    $collector->addToCondsFromRequest(TRUE, "user_ids");
    $collector->addToCondsIfNotEq("service", "All");
    $collector->addToCondsIfNotEq("successful", "All");
    $collector->addToCondsIfNotEq("owner", "All");
    $collector->addToCondsFromRequest(TRUE, "login_time_from", "login_time_from_unit");
    $collector->addToCondsFromRequest(TRUE, "login_time_to", "login_time_to_unit");
    $collector->addToCondsFromRequest(TRUE, "logout_time_from", "logout_time_from_unit");
    $collector->addToCondsFromRequest(TRUE, "logout_time_to", "logout_time_to_unit");
    $collector->addToCondsFromRequest(TRUE, "credit_used", "credit_used_op");
    $collector->addToCondsFromRequest(FALSE, "show_total_credit_used");
    $collector->addToCondsFromRequest(FALSE, "show_total_duration");
    $collector->addToCondsFromCheckBoxRequest("ras_", "ras_ip");
    return $collector->getConds();
}