= FROM_UNIXTIME( ? ) AND `timestamp` <= FROM_UNIXTIME( ? )', array($bill_id, $start, $end)); $count = round(($dur / 300 / (($ysize - 100) * 3)), 0); if ($count <= 1) { $count = 2; } // $count = round($counttot / 260, 0); // if ($count <= 1) { $count = 2; } // $max = dbFetchCell("SELECT delta FROM bill_data WHERE bill_id = ? AND `timestamp` >= FROM_UNIXTIME( ? ) AND `timestamp` <= FROM_UNIXTIME( ? ) ORDER BY delta DESC LIMIT 0,1", array($bill_id, $start, $end)); // if ($max > 1000000) { $div = "1000000"; $yaxis = "Mbit/sec"; } else { $div = "1000"; $yaxis = "Kbit/sec"; } $i = '0'; foreach (dbFetch('SELECT *, UNIX_TIMESTAMP(timestamp) AS formatted_date FROM bill_data WHERE bill_id = ? AND `timestamp` >= FROM_UNIXTIME( ? ) AND `timestamp` <= FROM_UNIXTIME( ? ) ORDER BY timestamp ASC', array($bill_id, $start, $end)) as $row) { $timestamp = $row['formatted_date']; if (!$first) { $first = $timestamp; } $delta = $row['delta']; $period = $row['period']; $in_delta = $row['in_delta']; $out_delta = $row['out_delta']; $in_value = delta_to_bits($in_delta, $period); $out_value = delta_to_bits($out_delta, $period); $last = $timestamp; $iter_in += $in_delta; $iter_out += $out_delta; $iter_period += $period; if ($iter == $count) { $out_data[$i] = round(($iter_out * 8 / $iter_period), 2); $out_data_inv[$i] = ($out_data[$i] * -1); $in_data[$i] = round(($iter_in * 8 / $iter_period), 2); $tot_data[$i] = ($out_data[$i] + $in_data[$i]); $tot_data_inv[$i] = ($tot_data[$i] * -1); if ($tot_data[$i] > $max_value) { $max_value = $tot_data[$i]; } $ticks[$i] = $timestamp; $per_data[$i] = $rate_95th; $ave_data[$i] = $rate_average; $iter = '1'; $i++; unset($iter_out, $iter_in, $iter_period); } $iter++; }//end foreach $graph_name = date('M j g:ia', $start).' - '.date('M j g:ia', $last); $n = count($ticks); $xmin = $ticks[0]; $xmax = $ticks[($n - 1)]; $graph_name = date('M j g:ia', $xmin).' - '.date('M j g:ia', $xmax); $graph = new Graph($xsize, $ysize, $graph_name); $graph->img->SetImgFormat('png'); $graph->SetScale('datlin', 0, 0, $start, $end); // $graph->title->Set("$graph_name"); $graph->title->SetFont(FF_FONT2, FS_BOLD, 10); $graph->xaxis->SetFont(FF_FONT1, FS_BOLD); $graph->xaxis->SetTextLabelInterval(2); $graph->xaxis->SetPos('min'); // $graph->xaxis->SetLabelAngle(15); $graph->yaxis->HideZeroLabel(1); $graph->yaxis->SetFont(FF_FONT1); $graph->yaxis->SetLabelAngle(0); $graph->xaxis->title->SetFont(FF_FONT1, FS_NORMAL, 10); $graph->yaxis->title->SetFont(FF_FONT1, FS_NORMAL, 10); $graph->yaxis->SetTitleMargin(50); $graph->xaxis->SetTitleMargin(30); // $graph->xaxis->HideLastTickLabel(); // $graph->xaxis->HideFirstTickLabel(); // $graph->yaxis->scale->SetAutoMin(1); $graph->xaxis->title->Set($type); $graph->yaxis->title->Set('Bits per second'); $graph->yaxis->SetLabelFormatCallback('format_si'); function TimeCallback($aVal) { global $dur; if ($dur < 172800) { return date('H:i', $aVal); } elseif ($dur < 604800) { return date('D', $aVal); } else { return date('j M', $aVal); } }//end TimeCallback() $graph->xaxis->SetLabelFormatCallback('TimeCallBack'); $graph->ygrid->SetFill(true, '#EFEFEF@0.5', '#FFFFFF@0.5'); $graph->xgrid->Show(true, true); $graph->xgrid->SetColor('#e0e0e0', '#efefef'); $graph->SetMarginColor('white'); $graph->SetFrame(false); $graph->SetMargin(75, 30, 30, 45); $graph->legend->SetFont(FF_FONT1, FS_NORMAL); $lineplot = new LinePlot($tot_data, $ticks); $lineplot->SetLegend('Traffic total'); $lineplot->SetColor('#d5d5d5'); $lineplot->SetFillColor('#d5d5d5@0.5'); // $lineplot2 = new LinePlot($tot_data_inv, $ticks); // $lineplot2->SetColor("#d5d5d5"); // $lineplot2->SetFillColor("#d5d5d5@0.5"); $lineplot_in = new LinePlot($in_data, $ticks); $lineplot_in->SetLegend('Traffic In'); $lineplot_in->SetColor('darkgreen'); $lineplot_in->SetFillColor('lightgreen@0.4'); $lineplot_in->SetWeight(1); $lineplot_out = new LinePlot($out_data_inv, $ticks); $lineplot_out->SetLegend('Traffic Out'); $lineplot_out->SetColor('darkblue'); $lineplot_out->SetFillColor('lightblue@0.4'); $lineplot_out->SetWeight(1); if (isset($_GET['95th'])) { $lineplot_95th = new LinePlot($per_data, $ticks); $lineplot_95th->SetColor('red'); } if (isset($_GET['ave'])) { $lineplot_ave = new LinePlot($ave_data, $ticks); $lineplot_ave->SetColor('red'); } $graph->legend->SetLayout(LEGEND_HOR); $graph->legend->Pos(0.52, 0.90, 'center'); $graph->Add($lineplot); // $graph->Add($lineplot2); $graph->Add($lineplot_in); $graph->Add($lineplot_out); if (isset($_GET['95th'])) { $graph->Add($lineplot_95th); } if (isset($_GET['ave'])) { $graph->Add($lineplot_ave); } $graph->stroke();