Cria gráficos de consumo de CPU e Memória a partir de arquivos.
Cria gráficos de consumo de CPU e Memória a partir de arquivos.
Esses arquivos são gerados por shell script via SNMPv3 conforme publicado anteriormente.
Procure pelo script como "SNMPv3".
Esses arquivos são gerados por shell script via SNMPv3 conforme publicado anteriormente.
Procure pelo script como "SNMPv3".
Descrição
Cria gráficos de consumo de CPU e Memória a partir de arquivos.
Esses arquivos são gerados por shell script via SNMPv3 conforme publicado anteriormente.
Procure pelo script como "SNMPv3".
Esses arquivos são gerados por shell script via SNMPv3 conforme publicado anteriormente.
Procure pelo script como "SNMPv3".
<?php
//------------------------------------------------------------------Mostra gráficos Diários
//@Alessandro Dias
//
// Tamanho do grafico
$alt=600;
$comp=1000;
// Cria Quadro
$image = @imagecreate($comp,$alt) or die("Erro na img GD");
// Cores
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$lightgray = imagecolorallocate($image, 0xD0, 0xD0, 0xD0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$blue = imagecolorallocate($image, 0x00, 0x00, 0xFF);
$green = imagecolorallocate($image, 0x00, 0xFF, 0x00);
$darkgreen = imagecolorallocate($image, 0x00, 0x88, 0x00);
$darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);
$black = imagecolorallocate($image, 0x00, 0x00, 0x00);
//------------------------------------------------------------------- Funcoes
function escreve($image,$x,$y,$texto,$color) {
imagestring($image, 2, $x+50, 550-$y, $texto, $color);
}
function ponto($image,$x,$y,$color) {
imageellipse($image, $x+50,550-$y, 2, 2, $color);
}
function plota($image,$x,$y,$color) {
$lightgray = imagecolorallocate($image, 0xE5, 0xE5, 0xE5);
ponto($image,$x,$y,$color);
//imageline($image, $x+50, 550-$y, 50, 550-$y, $lightgray);
imageline($image, $x+50, 550-$y, $x+50, 550, $lightgray);
}
function liga($image,$x1,$y1,$x2,$y2,$color) {
imageline($image, $x1+50, 550-$y1, $x2+50, 550-$y2, $color);
}
function monta_grafico($image,$alt,$comp,$divx,$divy) {
$navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
$blue = imagecolorallocate($image, 0x00, 0x00, 0xFF);
$black = imagecolorallocate($image, 0x00, 0x00, 0x00);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$red = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkgreen = imagecolorallocate($image, 0x00, 0x88, 0x00);
// Nome do Grafico
escreve($image,($comp-100)/2-130,($alt-60),"Estatistica Diaria de Consumo CPU/MEM", $navy);
// Cria Eixos
imageline($image, 50, 50, 50, $alt-50, $darkgray);
imageline($image, 50, $alt-50, $comp-50, $alt-50, $darkgray);
//Lê o range X
$fp=fopen("rangex","r");
$range = explode(",",fgets ($fp,4096));
fclose($fp);
$nusers=$range[2];
$clicks=$range[3];
$delay_user=$range[4];
$delay_click=$range[5];
$delay_user_rand=$range[6];
$delay_click_rand=$range[7];
$url=$range[8];
$ip=$range[9];
$data=trim($range[10]);
// Monta Legenda
escreve($image,170,-25,"Server: ".$ip, $darkgray);
escreve($image,320,-25,"Date: ".$data, $darkgray);
escreve($image,500,-25,"Autor: Alessandro Dias", $darkgray);
// Marca eixo X
escreve($image,($comp-160),-18,"Time", $navy);
$passo=($comp-100)/$divx;
$x=0;
for($i = 0; $x < ($comp-100); $i += $passo) {
$x=$i;
$y=0;
ponto($image,$x,$y,$black);
escreve($image,$x-5,$y-5,($i*$range[0]/($comp-100)),$black);
}
// Marca eixo Y
escreve($image,-10,($alt-52),"CPU(%)", $red);
escreve($image,-10,($alt-67),"MEM(%)", $blue);
escreve($image,-10,($alt-82),"MEM-BUF(%)", $darkgreen);
$passo=($alt-100)/$divy;
$y=0;
for ($i = 0; $y < ($alt-100); $i += $passo) {
$x=0;
$y=$i;
ponto($image,$x,$y,$black);
escreve($image,$x-20,$y+5,round($i/5),$black);
}
}
function gera_grafico($image,$alt,$comp,$divx,$divy,$pt,$num,$color) {
//lê o range X
$fp=fopen("rangex","r");
$range = explode(",",fgets ($fp,4096));
fclose($fp);
$black = imagecolorallocate($image, 0x00, 0x00, 0x00);
for($i = 1; $i < $num; $i++) {
//plota 2 pontos
$pt1x = round($pt[1][$i]*($comp-100)/($range[0]),1);
$pt1y = round($pt[2][$i]*($alt-100)/($divy*10),1);
$pt2x = round($pt[1][$i+1]*($comp-100)/($range[0]),1);
$pt2y = round($pt[2][$i+1]*($alt-100)/($divy*10),1);
plota($image,$pt1x,$pt1y,$black);
plota($image,$pt2x,$pt2y,$black);
//liga os pontos
liga($image,$pt1x,$pt1y,$pt2x,$pt2y,$color);
//escreve os valores de Y
//if ($i == $num-1) {
escreve($image,$pt1x-15,$pt1y+15,round($pt[2][$i],1),$color);
escreve($image,$pt2x-15,$pt2y+15,round($pt[2][$i+1],1),$color);
//}
}
}
// ------------------------------ Monta Grafico
monta_grafico($image,$alt,$comp,24,10);
// ------------------------------ Gera Pontos no Grafico
$filename1="pts_cpu";
$fp1=fopen($filename1,"r+");
$filename2="pts_mem";
$fp2=fopen($filename2,"r+");
$filename3="pts_mem_buf";
$fp3=fopen($filename3,"r+");
$conteudo1 = fgets ($fp1,4096);
$num=0;
while (!feof ($fp1)) {
$array = explode(",",$conteudo1);
$x=$array[0];
$y=$array[1];
$num = $num +1;
$pt1[1][$num]=$x;
$pt1[2][$num]=$y;
$conteudo1 = fgets ($fp1,4096);
}
$conteudo2 = fgets ($fp2,4096);
$num2=0;
while (!feof ($fp2)) {
$array = explode(",",$conteudo2);
$x=$array[0];
$y=$array[1];
$num2 = $num2 +1;
$pt2[1][$num2]=$x;
$pt2[2][$num2]=$y;
$conteudo2 = fgets ($fp2,4096);
}
$conteudo3 = fgets ($fp3,4096);
$num3=0;
while (!feof ($fp3)) {
$array = explode(",",$conteudo3);
$x=$array[0];
$y=$array[1];
$num3 = $num3 +1;
$pt3[1][$num3]=$x;
$pt3[2][$num3]=$y;
$conteudo3 = fgets ($fp3,4096);
}
fclose($fp1);
fclose($fp2);
fclose($fp3);
gera_grafico($image,$alt,$comp,12,10,$pt1,$num,$red);
gera_grafico($image,$alt,$comp,12,10,$pt2,$num2,$blue);
gera_grafico($image,$alt,$comp,12,10,$pt3,$num3,$darkgreen);
// ------------------------------
// output the picture
header("Content-type: image/png");
imagepng($image);
imagedestroy($im);
?>
<html>
<head><title>Stress Test Graphic</title></head>
<body>
<FORM name=frm method=post enctype="multipart/form-data" action="index.php">
<HR noShade>
<TABLE border=0><TR><TD valign=top>
<TABLE border=0>
<TBODY>
<TR>
<TD align=right>Range Time:
<TD><INPUT name=usr_range_time size=3 value="<?=$range_time?>" type=text> ms
</TR><TR>
<TD colspan=2><center><INPUT name=enviar type=submit value="Submit IP"></center>
</TR>
</TABLE>
</TD></TR></TABLE>
<HR noShade>
</FORM>
</body>
</html>