示例#1
0
function stacked_bar_chart($host_instance_list)
{
    $title = new title('所有instance实际内存使用');
    $title->set_style("{color: #567300; font-size: 16px; font-weight:bold;}");
    $bar_stack = new bar_stack();
    $bar_stack->set_colours(array('#C4D318', '#7D7B6A'));
    $max = 64;
    foreach ($host_instance_list as $i => $instance) {
        $jvmmem = isset($instance['jvmmem']) ? explode('/', $instance['jvmmem']) : array();
        if ($jvmmem) {
            foreach ($jvmmem as &$j) {
                $j = intval($j);
            }
            $max = $max < $jvmmem[1] ? $jvmmem[1] : $max;
            $jvmmem[1] = $jvmmem[1] - $jvmmem[0];
        }
        $bar_stack->append_stack($jvmmem);
        $lables[] = $instance['port_num'];
        $services[$i] = $instance['service_name'];
    }
    $bar_stack->set_keys(array(new bar_stack_key('#C4D318', 'used', 13), new bar_stack_key('#7D7B6A', 'total', 13)));
    $bar_stack->set_on_click('(function(x){var services=' . json_encode($services) . ';alert(services[x]);})');
    //js
    $bar_stack->set_tooltip('#val#M,共#total#M');
    $y = new y_axis();
    $y->set_range(0, $max + 32, 256);
    $x = new x_axis();
    $x->set_labels_from_array($lables);
    $tooltip = new tooltip();
    $tooltip->set_hover();
    $chart = new open_flash_chart();
    $chart->set_title($title);
    $chart->add_element($bar_stack);
    $chart->set_x_axis($x);
    $chart->add_y_axis($y);
    $chart->set_tooltip($tooltip);
    return $chart->toPrettyString();
}
示例#2
0
    $bar_stack->append_stack(array($infoXtipoRojo[$key] + 0, $infoXtipoAmarillo[$key] + 0, $infoXtipoVerde[$key] + 0));
    $arrayTipos[] = $key;
    // Suma el total de Radicados
    $noTotalRadsTMP = $noTotalRadsTMP + $infoXtipoRojo[$key] + $infoXtipoAmarillo[$key] + $infoXtipoVerde[$key];
    if ($noTotalRadsTMP > $noTotalRads) {
        $noTotalRads = $noTotalRadsTMP;
    }
    $noTotalRadsTMP = 0;
}
// set a cycle of 3 colours:
// add 3 bars:
// add 4 bars, the fourth will be the same colour as the first:
//$bar_stack->append_stack( array( 2.5, 5, 1.25, 1.25 ) );
//$bar_stack->append_stack( array( 5, new bar_stack_value(5, '#ff0000') ) );
//$bar_stack->append_stack( array( 2, 2, 2, 2, new bar_stack_value(2, '#ff00ff') ) );
$bar_stack->set_keys(array(new bar_stack_key('#C4D318', 'En Peligro de Vencer', 12), new bar_stack_key('#77CC6D', 'Tiempo Ok', 12), new bar_stack_key('#ff0000', 'Vencidos', 12)));
$bar_stack->set_tooltip('X label [#x_label#], Radicados [#val#]<br>Total [#total#]');
$y = new y_axis();
$y->set_range(0, $noTotalRads, 2);
$x = new x_axis();
$animation_1 = 'pop';
$delay_1 = 0.25;
$cascade_1 = 10;
//$x->set_labels->set_vertical();
$bar_stack->set_on_show(new bar_on_show($animation_1, $cascade_1, $delay_1));
$x_labels = new x_axis_labels();
//$x_labels->set_steps( 1 );
$x_labels->rotate(15);
$x_labels->set_labels($arrayTipos);
$x->set_labels($x_labels);
//$x->rotate(90);
示例#3
0
function generateStats($params)
{
    global $reportCacheLocation;
    // Computer Statistics Generation
    $dbTrackHandler = connectDb();
    $resultBag = generateStatsBag($params, $dbTrackHandler);
    // ----------------------------------------------------
    // Generate charts
    $animation_1 = isset($params['animation_1']) ? $params['animation_1'] : 'pop';
    $delay_1 = isset($params['delay_1']) ? $params['delay_1'] : 0.5;
    $cascade_1 = isset($params['cascade_1']) ? $params['cascade_1'] : 1;
    $title = new title("Genie Report: " . $params['reportName'] . " - Generated on " . date('Y/m/d h:i:s A'));
    $title->set_style("{font-size: 12px; color: #000000; text-align: center;}");
    $bar_stack = new bar_stack();
    if ($params['reportType'] == 'computerStats') {
        foreach ($resultBag as $elm) {
            $tmpTotal = $elm[AVAIBILITY_TYPE_OFFLINE] + $elm[AVAIBILITY_TYPE_AVAILABLE] + $elm[AVAIBILITY_TYPE_BUSY];
            if ($tmpTotal == 0) {
                $tmpTotal = 1;
            }
            // Only Chuck Norris can divide by Zero.
            $bar_stack->append_stack(array($elm[AVAIBILITY_TYPE_OFFLINE] / $tmpTotal * 100, $elm[AVAIBILITY_TYPE_AVAILABLE] / $tmpTotal * 100, $elm[AVAIBILITY_TYPE_BUSY] / $tmpTotal * 100));
        }
        $bar_stack->set_colours(array('#FF0000', '#00FF00', '#A25B00'));
        $bar_stack->set_keys(array(new bar_stack_key('#FF0000', 'OFFLINE', 13), new bar_stack_key('#00FF00', 'FREE', 13), new bar_stack_key('#A25B00', 'BUSY', 13)));
    } else {
        $allProgNames = array();
        foreach ($resultBag as $elm) {
            $progNames = array_keys($elm);
            foreach ($progNames as $progName) {
                if (validProgram($progName)) {
                    if (!array_key_exists($progName, $allProgNames)) {
                        $allProgNames[$progName] = "#" . dechex(rand(0, 10000000));
                    }
                }
            }
        }
        $progsArray = array();
        foreach ($resultBag as $elm) {
            $tmpTotal = 0;
            $progNames = array_keys($elm);
            foreach ($elm as $programName => $programWeight) {
                if (validProgram($programName)) {
                    $tmpTotal += $programWeight;
                }
            }
            //echo "<h1>$tmpTotal</h1>";
            if ($tmpTotal == 0) {
                $tmpTotal = 1;
            }
            // Only Chuck Norris can divide by Zero.
            $progs = array();
            foreach ($elm as $programName => $programWeight) {
                if (validProgram($programName)) {
                    $percentVal = $programWeight / $tmpTotal * 100;
                    $progs[] = new bar_stack_value($percentVal, $allProgNames[$programName]);
                    $progsArray[$percentVal * 1000000] = $programName;
                }
            }
            $bar_stack->append_stack($progs);
        }
        $legends = array();
        //$strAllProgNames = array_keys($allProgNames);
        foreach ($allProgNames as $programName => $programColor) {
            $legends[] = new bar_stack_key($programColor, $programName, 13);
        }
        $bar_stack->set_keys($legends);
        ksort($progsArray);
        echo "<pre>";
        while (list($key, $value) = each($progsArray)) {
            $kw = $key / 1000000;
            echo "{$kw}: {$value}<br />\n";
        }
        echo "</pre>";
    }
    //$bar_stack->set_tooltip( 'In #x_label# you get #total# days holiday a year.<br>Number of days: #val#' );
    $bar_stack->set_on_show(new bar_on_show($animation_1, $cascade_1, $delay_1));
    $y = new y_axis();
    $y->set_range(0, 100, 10);
    //$y->set_range( 0, $tmpMax, $tmpMax/10 );
    $x_labels = new x_axis_labels();
    $x_labels->rotate(45);
    $x_labels->set_labels(array_keys($resultBag));
    $x = new x_axis();
    $x->set_labels($x_labels);
    $tooltip = new tooltip();
    $tooltip->set_hover();
    $chart = new open_flash_chart();
    $chart->set_title($title);
    $chart->add_element($bar_stack);
    $chart->set_x_axis($x);
    $chart->add_y_axis($y);
    $chart->set_tooltip($tooltip);
    // ----------------------------------------------------
    $cacheid = time();
    $filename = $cacheid . '.cache.json';
    $myFile = "{$reportCacheLocation}/reports-cache/" . $filename;
    $fh = fopen($myFile, 'w') or die("can't open file");
    fwrite($fh, $chart->toPrettyString());
    fclose($fh);
    return $cacheid;
}