summaryrefslogtreecommitdiffstats
path: root/frontends/php/chart3.php
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2002-07-31 17:26:36 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2002-07-31 17:26:36 +0000
commit89d810024288866e72586c1774dec254db9aa884 (patch)
treea637245a8a326baf888919dbd52e7f279327d731 /frontends/php/chart3.php
parenta92a8524d8ed82855ea113e50e6894684e87ae9d (diff)
downloadzabbix-89d810024288866e72586c1774dec254db9aa884.tar.gz
zabbix-89d810024288866e72586c1774dec254db9aa884.tar.xz
zabbix-89d810024288866e72586c1774dec254db9aa884.zip
- changed grid size for all graphs (Alexei)
- added frontends/php/chart4.php (Alexei) - added frontends/php/compare.php (Alexei) - redesigned all graphs (changed colors, etc) (Alexei) git-svn-id: svn://svn.zabbix.com/trunk@444 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'frontends/php/chart3.php')
-rw-r--r--frontends/php/chart3.php179
1 files changed, 124 insertions, 55 deletions
diff --git a/frontends/php/chart3.php b/frontends/php/chart3.php
index e32b3787..d7d6c1ab 100644
--- a/frontends/php/chart3.php
+++ b/frontends/php/chart3.php
@@ -9,40 +9,33 @@
if(!isset($type))
{
- $type="15min";
+ $type="week";
}
- if($type == "15min")
+ if($type == "month")
{
- $period=900;
- $label_format="H:i";
+ $period=30*24*3600;
}
- else if($type == "30min")
+ else if($type == "week")
{
- $period=1800;
- $label_format="H:i";
+ $period=7*24*3600;
}
- else if($type == "4hours")
+ else if($type == "year")
{
- $period=4*3600;
- $label_format="H:i";
- }
- else if($type == "12hours")
- {
- $period=12*3600;
- $label_format="H:i";
+ $period=365*30*24*3600;
}
else
{
- $period=3600;
- $label_format="H:i";
+ $period=7*24*3600;
+ $type="week";
}
$sizeX=900;
$sizeY=200;
- $shiftX=10;
- $shiftY=15;
+ $shiftX=12;
+ $shiftYup=13;
+ $shiftYdown=7+15*2;
$nodata=1;
@@ -51,9 +44,10 @@
Header( "Content-type: image/png");
Header( "Expires: Mon, 17 Aug 1998 12:51:50 GMT");
- $im = imagecreate($sizeX+$shiftX+61,$sizeY+2*$shiftY+10);
+ $im = imagecreate($sizeX+$shiftX+61,$sizeY+$shiftYup+$shiftYdown+10);
$red=ImageColorAllocate($im,255,0,0);
+ $darkred=ImageColorAllocate($im,150,0,0);
$green=ImageColorAllocate($im,0,255,0);
$darkgreen=ImageColorAllocate($im,0,150,0);
$blue=ImageColorAllocate($im,0,0,255);
@@ -61,15 +55,17 @@
$cyan=ImageColorAllocate($im,0,255,255);
$black=ImageColorAllocate($im,0,0,0);
$gray=ImageColorAllocate($im,150,150,150);
+ $white=ImageColorAllocate($im,255,255,255);
$x=imagesx($im);
$y=imagesy($im);
- ImageFilledRectangle($im,0,0,$sizeX+$shiftX+61,$sizeY+2*$shiftY+10,$black);
+ ImageFilledRectangle($im,0,0,$sizeX+$shiftX+61,$sizeY+$shiftYup+$shiftYdown+10,$white);
+ ImageRectangle($im,0,0,$x-1,$y-1,$black);
$now = time(NULL);
$to_time=$now;
- $from_time=$to_time-7*24*3600;
+ $from_time=$to_time-14*24*3600;
$count=array();
$min=array();
@@ -80,29 +76,76 @@
while($row=DBfetch($result))
{
$value=$row["value"];
- $i=intval( 900*($from_time-$row["clock"])/($from_time-$to_time));
+ $i=intval( 900*(($row["clock"]+3*3600)%(24*3600))/(24*3600));
+// $value=$i;
+// if($i==0) echo "B:",date("dS of F Y h:i:s A",$row["clock"]),"<br>";
+// if($i==899) echo "E:",date("dS of F Y h:i:s A",$row["clock"]),"<br>";
if( (!isset($max[$i])) || ($max[$i]<$value))
{
$max[$i]=$value;
}
if(!isset($min[$i]) || ($min[$i]>$value)) $min[$i]=$value;
- $avg[$i]=0;
- $count[$i]=1;
+ if(isset($count[$i]))
+ {
+ $count[$i]++;
+ }
+ else
+ {
+ $count[$i]=1;
+ };
+ if(isset($avg[$i]))
+ {
+ $avg[$i]=($value+($count[$i]-1)*$avg[$i])/$count[$i];
+ }
+ else
+ {
+ $avg[$i]=$value;
+ }
$nodata=0;
}
- for($i=0;$i<=$sizeY;$i+=50)
+ $count_now=array();
+ $avg_now=array();
+ $to_time=$now;
+ $from_time=$to_time-$period;
+ $result=DBselect("select clock,value from history where itemid=$itemid and clock>$from_time and clock<$to_time");
+ while($row=DBfetch($result))
+ {
+ $value=$row["value"];
+ $i=intval( 900*(($row["clock"]+3*3600)%(24*3600))/(24*3600));
+// $i=intval( 900*(($to_time-$row["clock"]+75600)%(24*3600))/(24*3600));
+// echo (mktime(0, 0, 0, 07, 27,2002)-75600)%(24*3600),"<br>";
+
+ if(isset($count_now[$i]))
+ {
+ $count_now[$i]++;
+ }
+ else
+ {
+ $count_now[$i]=1;
+ };
+ if(isset($avg_now[$i]))
+ {
+ $avg_now[$i]=($value+($count_now[$i]-1)*$avg_now[$i])/$count_now[$i];
+ }
+ else
+ {
+ $avg_now[$i]=$value;
+ }
+ }
+
+ for($i=0;$i<=$sizeY;$i+=$sizeY/5)
{
- ImageDashedLine($im,$shiftX,$i+$shiftY,$sizeX+$shiftX,$i+$shiftY,$darkgreen);
+ ImageDashedLine($im,$shiftX,$i+$shiftYup,$sizeX+$shiftX,$i+$shiftYup,$gray);
}
- for($i=0;$i<=$sizeX;$i+=50)
+ for($i=0;$i<=$sizeX;$i+=$sizeX/24)
{
- ImageDashedLine($im,$i+$shiftX,$shiftY,$i+$shiftX,$sizeY+$shiftY,$darkgreen);
+ ImageDashedLine($im,$i+$shiftX,$shiftYup,$i+$shiftX,$sizeY+$shiftYup,$gray);
if($nodata == 0)
{
- ImageString($im, 1,$i+$shiftX-11, $sizeY+$shiftY+5, date($label_format,$from_time+$period*($i/50)) , $red);
+ ImageString($im, 1,$i+$shiftX-11, $sizeY+$shiftYup+5, date("H:i",-3*3600+24*3600*$i/900) , $black);
}
}
@@ -111,16 +154,8 @@
if($nodata == 0)
{
- if(isset($trendavg))
- {
- $maxY=max($avg);
- $minY=min($avg);
- }
- else
- {
- $maxY=max($max);
- $minY=min($min);
- }
+ $maxY=max($avg);
+ $minY=min($avg);
}
$maxX=900;
@@ -132,7 +167,7 @@
{
if($count[$i]>0)
{
- if(!isset($trendavg))
+/* if(!isset($trendavg))
{
$x1=$sizeX*($i-$minX)/($maxX-$minX);
$y1=$sizeY*($max[$i]-$minY)/($maxY-$minY);
@@ -141,8 +176,8 @@
$y1=$sizeY-$y1;
$y2=$sizeY-$y2;
- ImageLine($im,$x1+$shiftX,$y1+$shiftY,$x2+$shiftX,$y2+$shiftY,$red);
- }
+ ImageLine($im,$x1+$shiftX,$y1+$shiftYup,$x2+$shiftX,$y2+$shiftYup,$blue);
+ }*/
$x1=$sizeX*($i-$minX)/($maxX-$minX);
$y1=$sizeY*($avg[$i]-$minY)/($maxY-$minY);
@@ -151,9 +186,9 @@
$y1=$sizeY-$y1;
$y2=$sizeY-$y2;
- ImageLine($im,$x1+$shiftX,$y1+$shiftY,$x2+$shiftX,$y2+$shiftY,$yellow);
+ ImageLine($im,$x1+$shiftX,$y1+$shiftYup,$x2+$shiftX,$y2+$shiftYup,$darkgreen);
- if(!isset($trendavg))
+/* if(!isset($trendavg))
{
$x1=$sizeX*($i-$minX)/($maxX-$minX);
$y1=$sizeY*($min[$i]-$minY)/($maxY-$minY);
@@ -162,24 +197,40 @@
$y1=$sizeY-$y1;
$y2=$sizeY-$y2;
- ImageLine($im,$x1+$shiftX,$y1+$shiftY,$x2+$shiftX,$y2+$shiftY,$green);
+ ImageLine($im,$x1+$shiftX,$y1+$shiftYup,$x2+$shiftX,$y2+$shiftYup,$green);
+ }*/
+ }
+ if(($count_now[$i]>0)&&($count_now[$i-1]>0))
+ {
+ if($i>0)
+ {
+ $x1=$sizeX*($i-$minX)/($maxX-$minX);
+ $y1=$sizeY*($avg_now[$i]-$minY)/($maxY-$minY);
+ $x2=$sizeX*($i-$minX-1)/($maxX-$minX);
+ $y2=$sizeY*($avg_now[$i-1]-$minY)/($maxY-$minY);
+// $x2=$x1;
+// $y2=0;
+ $y1=$sizeY-$y1;
+ $y2=$sizeY-$y2;
+
+ ImageLine($im,$x1+$shiftX,$y1+$shiftYup,$x2+$shiftX,$y2+$shiftYup,$darkred);
}
}
-# ImageStringUp($im, 1, $x1+10, $sizeY+$shiftY+15, $i , $red);
+# ImageStringUp($im, 1, $x1+10, $sizeY+$shiftYup+15, $i , $red);
}
}
else
{
-// ImageLine($im,$shiftX,$shiftY+$sizeY/2,$sizeX+$shiftX,$shiftY+$sizeY/2,$green);
+// ImageLine($im,$shiftX,$shiftYup+$sizeY/2,$sizeX+$shiftX,$shiftYup+$sizeY/2,$green);
}
if($nodata == 0)
{
- for($i=0;$i<=$sizeY;$i+=50)
+ for($i=0;$i<=$sizeY;$i+=$sizeY/5)
{
- ImageString($im, 1, $sizeX+5+$shiftX, $sizeY-$i-4+$shiftY, $i*($maxY-$minY)/$sizeY+$minY , $red);
+ ImageString($im, 1, $sizeX+5+$shiftX, $sizeY-$i-4+$shiftYup, $i*($maxY-$minY)/$sizeY+$minY , $darkred);
}
// date("dS of F Y h:i:s A",DBget_field($result,0,0));
@@ -189,14 +240,32 @@
}
else
{
- ImageString($im, 2,$sizeX/2 -50, $sizeY+$shiftY+3, "NO DATA FOR THIS PERIOD" , $red);
+ ImageString($im, 2,$sizeX/2 -50, $sizeY+$shiftYup+3, "NO DATA FOR THIS PERIOD" , $red);
+ }
+
+ ImageFilledRectangle($im,$shiftX,$sizeY+$shiftYup+19+15*0,$shiftX+5,$sizeY+$shiftYup+15+9+15*0,$darkgreen);
+ ImageRectangle($im,$shiftX,$sizeY+$shiftYup+19+15*0,$shiftX+5,$sizeY+$shiftYup+15+9+15*0,$black);
+ if($type=="year")
+ {
+ ImageString($im, 2,$shiftX+9,$sizeY+$shiftYup+15*0+15, "Average for last 365 days", $black);
+ }
+ else if($type=="month")
+ {
+ ImageString($im, 2,$shiftX+9,$sizeY+$shiftYup+15*0+15, "Average for last 30 days", $black);
+ }
+ else
+ {
+ ImageString($im, 2,$shiftX+9,$sizeY+$shiftYup+15*0+15, "Average for last 7 days", $black);
}
- ImageString($im, 1,$shiftX, $sizeY+$shiftY+15, "MIN" , $green);
- ImageString($im, 1,$shiftX+20, $sizeY+$shiftY+15, "AVG" , $yellow);
- ImageString($im, 1,$shiftX+40, $sizeY+$shiftY+15, "MAX" , $red);
+ ImageFilledRectangle($im,$shiftX,$sizeY+$shiftYup+19+15*1,$shiftX+5,$sizeY+$shiftYup+15+9+15*1,$darkred);
+ ImageRectangle($im,$shiftX,$sizeY+$shiftYup+19+15*1,$shiftX+5,$sizeY+$shiftYup+15+9+15*1,$black);
+ ImageString($im, 2,$shiftX+9,$sizeY+$shiftYup+15*1+15, "Average today", $black);
+
+// ImageString($im, 1,$shiftX, $sizeY+$shiftY+15, "AVG (LAST WEEK)" , $darkgreen);
+// ImageString($im, 1,$shiftX+80, $sizeY+$shiftY+15, "AVG (TODAY)" , $darkred);
- ImageStringUp($im,0,2*$shiftX+$sizeX+40,$sizeY+2*$shiftY, "http://zabbix.sourceforge.net", $gray);
+ ImageStringUp($im,0,2*$shiftX+$sizeX+40,$sizeY+$shiftYup+$shiftYdown, "http://zabbix.sourceforge.net", $gray);
ImagePng($im);
ImageDestroy($im);