From 9ce8d781b9d836b81d6b951b07420db8e782ca1e Mon Sep 17 00:00:00 2001 From: slerena <slerena@gmail.com> Date: Thu, 31 Aug 2006 23:54:13 +0000 Subject: [PATCH] 2006-08-30 Sancho Lerena <slerena@gmail.com> * pandora_agent/ChangeLog: Created and added to repository * pandora_server/ChangeLog: Created and added to repository * pandora_console/CHANGELOG: Renamed to ChangeLog * pandora_console/reporting/*.php: Replaced old code with new code for trunk. Deleted old_jpg_functions directory from repository git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@155 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_agents/ChangeLog | 4 + pandora_console/{CHANGELOG => ChangeLog} | 12 +- pandora_console/reporting/fgraph.php | 4 +- .../reporting/old_jpg_functions/fgraph.php | 1338 ----------------- .../reporting/old_jpg_functions/stat_win.php | 74 - pandora_server/ChangeLog | 0 6 files changed, 17 insertions(+), 1415 deletions(-) create mode 100644 pandora_agents/ChangeLog rename pandora_console/{CHANGELOG => ChangeLog} (96%) delete mode 100644 pandora_console/reporting/old_jpg_functions/fgraph.php delete mode 100644 pandora_console/reporting/old_jpg_functions/stat_win.php create mode 100644 pandora_server/ChangeLog diff --git a/pandora_agents/ChangeLog b/pandora_agents/ChangeLog new file mode 100644 index 0000000000..25c1103725 --- /dev/null +++ b/pandora_agents/ChangeLog @@ -0,0 +1,4 @@ +2006-08-30 Sancho Lerena <slerena@gmail.com> + + * pandora_agent/ChangeLog: Created and added to repository + diff --git a/pandora_console/CHANGELOG b/pandora_console/ChangeLog similarity index 96% rename from pandora_console/CHANGELOG rename to pandora_console/ChangeLog index bd636b5be0..afaf2c0bb6 100644 --- a/pandora_console/CHANGELOG +++ b/pandora_console/ChangeLog @@ -1,3 +1,11 @@ +2006-08-30 Sancho Lerena <slerena@artica.es> + + * CHANGELOG: Renamed to ChangeLog + + * reporting/*.php: Replaced old code with new code for trunk. Deleted + old_jpg_functions directory from repository + + 2006-07-20 Raul Mateos <raulofpandora@gmail.com> * language_fr.php. Update text. @@ -10,7 +18,9 @@ * language_it.php. Update text. - * snmp_alert.php. Add text when alert not created /updated / deleted. Add different colors between rows (cosmetic changes). + * snmp_alert.php. Add text when alert not created /updated / deleted. Add + different colors between + rows (cosmetic changes). 2006-07-18 Raul Mateos <raulofpandora@gmail.com> diff --git a/pandora_console/reporting/fgraph.php b/pandora_console/reporting/fgraph.php index 829437ddd6..4504cc4711 100644 --- a/pandora_console/reporting/fgraph.php +++ b/pandora_console/reporting/fgraph.php @@ -477,7 +477,7 @@ function graphic_agentaccess($id_agent, $periodo){ include ("jpgraph/jpgraph.php"); include ("jpgraph/jpgraph_line.php"); require ("../include/languages/language_".$language_code.".php"); - $color ="#437722"; // Green pandora 1.1 octopus + $color ="#437722"; // Green pandora 1.1 octopus color $agent_interval = give_agentinterval($id_agent); $intervalo = 30 * $config_graph_res; // Desired interval / range between dates @@ -525,7 +525,7 @@ function graphic_agentaccess($id_agent, $periodo){ // Create graph $graph = new Graph(280,70); - $graph-> img-> SetImgFormat("gif"); + $graph-> img-> SetImgFormat("png"); // GIF was causing odd problems in Redhat EL 4 $graph->SetMargin(25,5,3,3); $graph->SetScale("textlin",0,0,0,0); $graph->SetAlphaBlending(true); diff --git a/pandora_console/reporting/old_jpg_functions/fgraph.php b/pandora_console/reporting/old_jpg_functions/fgraph.php deleted file mode 100644 index bf6549a186..0000000000 --- a/pandora_console/reporting/old_jpg_functions/fgraph.php +++ /dev/null @@ -1,1338 +0,0 @@ -<?php - -// Pandora - The Free Monitoring System -// This code is protected by GPL license. -// Este codigo esta protegido por la licencia GPL. -// Sancho Lerena <slerena@gmail.com>, 2003-2006 -// Raúl Mateos <raulofpandora@gmail.com>, 2006 - -// Load global vars -include ("../include/config.php"); -include ("../include/functions.php"); -include ("../include/functions_db.php"); -require ("../include/languages/language_".$language_code.".php"); - -function dame_fecha($mh){ - // Return a MySQL timestamp date, formatted with actual date MINUS X minutes, given as parameter - $m_year = date("Y", time()-$mh*60); - $m_month = date("m", time()-$mh*60); - $m_day = date ("d", time()-$mh*60); - $m_hour = date ("H", time()-$mh*60); - $m_min = date ("i", time()-$mh*60); - $m = $m_year."-".$m_month."-".$m_day." ".$m_hour.":".$m_min.":00"; - return $m; -} - -function dame_fecha_grafico($mh){ // Devuelve fecha formateada en funcion de un numero de minustos antes de la fecha actual - - // Date 24x7x30 hours ago (one month) - $m_year = date("Y", time()-$mh*60); - $m_month = date("m", time()-$mh*60); - $m_day = date ("d", time()-$mh*60); - $m_hour = date ("H", time()-$mh*60); - $m_min = date ("i", time()-$mh*60); - $m = $m_month."/".$m_day." ".$m_hour.":".$m_min; - return $m; -} - -function grafico_modulo_sparse($id_agente_modulo, $periodo, $intervalo, $etiqueta, $color){ - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_line.php"); - require ("../include/languages/language_".$language_code.".php"); - - // WHere periodo is lapse of time in seconds that we want to show in a graph, this could be a week, 1 hour, a day, etc - $fechatope = dame_fecha($periodo); // Max old-date limit - $horasint = $periodo / $intervalo; // Each intervalo is $horasint seconds length - $nombre_agente = dame_nombre_agente_agentemodulo($id_agente_modulo); - $nombre_modulo = dame_nombre_modulo_agentemodulo($id_agente_modulo); - - // Para crear las graficas vamos a crear un array de Ax4 elementos, donde - // A es el numero de posiciones diferentes en la grafica (30 para un mes, 7 para una semana, etc) - // y los 4 valores en el ejeY serian los detallados a continuacion: - // Rellenamos la tabla con un solo select, y los calculos se hacen todos sobre memoria - // esto acelera el tiempo de calculo al maximo, aunque complica el algoritmo :-) - - // Where - // intervalo - This is the number of "rows" we are divided the time to fill data. - // more interval, more resolution, and slower. - - // periodo - Gap of time, in seconds. This is now to (now-periodo) secs - - // Init tables - for ($x = 0; $x <= $intervalo; $x++) { - $valores[$x][0] = 0; // [0] Value (counter) - $valores[$x][2] = dame_fecha($horasint * $x); // [2] Rango superior de fecha para ese rango - $valores[$x][3] = dame_fecha($horasint*($x+1)); // [3] Rango inferior de fecha para ese rango - $etiq_base[] = dame_fecha_grafico($horasint * $x); - $valores_min[$x]= 0; $valores_max[$x]=0; - } - - // Get the last value, the last known value (more recent) - $sql1 = "SELECT * FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." ORDER BY timestamp DESC limit 1"; - if ($result=mysql_query($sql1)){ - $row=mysql_fetch_array($result); - $old_value=$row["datos"]; - $old_date = $row["timestamp"]; - } else { - $old_value=0; - } - - // Get the last known date (most near to now) for lastcontact in this module - $sql1 = "SELECT * FROM tagente_estado WHERE id_agente_modulo = ".$id_agente_modulo; - if ($result=mysql_query($sql1)){ - $row=mysql_fetch_array($result); - $old_date = $row["timestamp"]; - } - - // Get the last first date (most far to now) for lastcontact in this module - // there is no data far away, so value must be 0 before this date - $sql1 = "SELECT * FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." order by timestamp asc limit 1"; - if ($result=mysql_query($sql1)){ - $row=mysql_fetch_array($result); - $first_date = $row["timestamp"]; - } - - // Get the oldest known date just out of lower bound for global interval - $sql1 = "SELECT * FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." and timestamp < '".$fechatope."' order by timestamp desc limit 1"; - if ($result=mysql_query($sql1)){ - $row=mysql_fetch_array($result); - $old_date_interval = $row["timestamp"]; - $old_data_interval = $row["datos"]; - $old_data_used = 0; - } - - for ($i = $intervalo; $i >= 0; $i--){ - $sql1 = "SELECT AVG(datos),MAX(datos),MIN(datos) FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." and timestamp >= '".$valores[$i][3]."' and timestamp < '".$valores[$i][2]."'"; - $sql2 = "SELECT datos FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." and timestamp >= '".$valores[$i][3]."' and timestamp < '".$valores[$i][2]."' order by timestamp desc limit 1"; - $result2=mysql_query($sql2); - $result=mysql_query($sql1); - $row=mysql_fetch_array($result); - $row2=mysql_fetch_array($result2); -#echo "AVG MAX MIN (old_value) ".$valores[$i][3]."<br>"; -#echo $row[0]." ".$row[1]." ".$row[2]." old-".$old_value." ".$old_date; -#echo "<br><br>"; - if ($row[0] != ""){ - $data_item=$row[0]; - $valores_max[$i] = $row[1]; - $valores_min[$i] = $row[2]; - if ($data_item == ""){ - $data_item = $old_value; - $valores_min[$i] = $old_value; - $valores_max[$i] = $old_value; - } else { - $old_value = $row2[0]; // Last data - #$old_date = $valores[$i][3]; - } - $old_data_used =1; // Dont use "previous value for this interval" anymore // if a real value its in database. - } else { - // Interval more recent that last module -contact- - if ((strtotime($old_date) < strtotime($valores[$i][2]))){ - $data_item = 0; - $valores_min[$i] = 0; - $valores_max[$i] = 0; - // Get data from lower limit of this interval - } elseif ((isset($old_date_interval)) AND (strtotime($old_date_interval) < strtotime($valores[$i][2])) AND ($old_data_used == 0)) { - $data_item = $old_data_interval; - $valores_min[$i] = $data_item; - $valores_max[$i] = $data_item; - } elseif ( strtotime($valores[$i][2]) < strtotime($first_date)){ - $data_item = 0; - $valores_min[$i] = 0; - $valores_max[$i] = 0; - } else { - $data_item = $old_value; - $valores_min[$i] = $old_value; - $valores_max[$i] = $old_value; - } - } - - $valores[$i][0]=$data_item; - } - - $sql1 = "SELECT MAX(datos) FROM tagente_datos WHERE id_agente_modulo = ".$id_agente_modulo." AND timestamp > '".$valores[0][2]."' AND timestamp > '".$valores[$intervalo][3]."'"; - if ($result=mysql_query($sql1)){ - $row=mysql_fetch_array($result); - $valor_maximo=$row[0]; - if ($valor_maximo == ""){ - $valor_maximo = 0; - } - } else { - $valor_maximo=0; - } - - // Invert data order in graph - if ($config_graph_order == 1){ - $valor_maximo=0;$valor_minimo=0; - for ($x = 0; $x <=$intervalo; $x++) { - $grafica[$x]=$valores[$x][0]; - if ($valores_max[$x] > $valor_maximo){ - $valor_maximo = $valores_max[$x]; - } - if ($valores_min[$x] < $valor_minimo){ - $valor_minimo = $valores_min[$x]; - } - } - } else { - // Invert data - $valor_maximo=0;$valor_minimo=0; - for ($x = $intervalo; $x>=0; $x--) { - $grafica[$x]=$valores[$intervalo-$x][0]; - $valores_max2[$x] = $valores_max[$intervalo-$x]; - $valores_min2[$x] = $valores_min[$intervalo-$x]; - if ($valores_max[$x] > $valor_maximo){ - $valor_maximo = $valores_max[$x]; - } - if ($valores_min[$x] < $valor_minimo){ - $valor_minimo = $valores_min[$x] - 50; - } - $etiq_base2[$intervalo-$x]=$etiq_base[$x]; - } - $valores_max = $valores_max2; - $valores_min = $valores_min2; - $etiq_base = $etiq_base2; - } - - // Create graph - $graph = new Graph(550,220); - $graph->SetMargin(50,120,30,60); - $valor_maximo = ceil($valor_maximo / 4) + $valor_maximo; - $graph->SetScale("textlin",0,$valor_maximo,0,0); - $graph->SetAlphaBlending(); - // Which background color - $graph->SetMarginColor('white'); - - // Without frame - $graph->SetFrame(false); - - // Colour Y-axe line - $graph->ygrid->SetFill(true,'#EFEFEF@0.6','#BBCCFF@0.6'); - //$graph->xgrid->Show(); - - // Title - $graph->tabtitle->Set("$etiqueta - $nombre_agente / $nombre_modulo"); - - // To use true type fonts (who permits a label text in angle of 45) - // cp /usr/share/fonts/truetype/msttcorefonts/arial.ttf /usr/X11R6/lib/X11/fonts/truetype/ - if ($config_truetype == 1){ - $graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,7); - $graph->xaxis->SetLabelAngle(35); - } else { - // Fixed font - $graph->xaxis->SetFont(FF_FONT0); - $graph->xaxis->SetLabelAngle(90); - } - - $graph->xaxis->SetTickLabels($etiq_base); - //$graph->xaxis->SetTextLabelInterval(ceil($intervalo / 10),0); - - $graph->xaxis->SetTextTickInterval(ceil($intervalo/10),0); - $graph->yaxis->SetFont(FF_FONT0); - // Crete data line - - $line0=new LinePlot($valores_max); - $line0->SetColor("blue"); - $line0->SetWeight(1); - $line0->SetFillColor("blue@0.2"); - $line0->SetLegend($lang_label["max"]); - - $line1=new LinePlot($grafica); - $line1->SetColor($color); - $line1->SetWeight(1); - $line1->SetFillColor($color."@0.2"); - $line1->SetLegend($lang_label["med"]); - - $line2=new LinePlot($valores_min); - $line2->SetColor("yellow"); - $line2->SetWeight(1); - $line2->SetFillColor("yellow@0.2"); - $line2->SetLegend($lang_label["min"]); - - // Add line to graph - $graph->Add($line0); - $graph->Add($line1); - $graph->Add($line2); - - $graph->legend->Pos(0.01,0.2,"right","center"); - - // Y-axe up graph - $graph->SetGridDepth(DEPTH_BACK); - // Antialias - // $graph->img->SetAntiAliasing(); - // Mostramos la imagen - $graph->Stroke(); -} - -function graphic_agentmodules($id_agent) { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $sql1="SELECT * FROM ttipo_modulo"; - $result=mysql_query($sql1); - $ax = 0; - while ($row=mysql_fetch_array($result)){ - $data_label[$ax]=$row["nombre"]; - $data[$ax]=0; - $data_id[$ax] = $row["id_tipo"]; - $ax++; - } - $cx=0; - $sql1="SELECT * FROM tagente_modulo WHERE id_agente = ".$id_agent; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $cx++; - for ($bx=0;$bx<=$ax;$bx++){ - if (isset($data_id[$bx])){ - if ($data_id[$bx] == $row["id_tipo_modulo"]){ - $data[$bx]++; - } - } - } - } - - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - $bx=0; - for ($a=0;$a < sizeof($data_label); $a++) - if ($data[$a] > 0){ - $data_label2[$bx] = $data_label[$a]; - $data2[$bx] = $data[$a]; - $bx++; - } - - - $graph = new PieGraph(280,120,"auto"); - // $graph->SetMarginColor('white@0.2'); - $graph->SetMargin(15,4,2,2); - $graph->SetMarginColor('#f5f5f5'); - $graph->img->SetCanvasColor('#f5f5f5'); - $graph->SetFrame(True,'#f5f5f5',0); - $graph->SetAlphaBlending(); - if ($cx > 1){ - $p1 = new PiePlot3D($data2); - $p1->SetLegends($data_label2); - } else { - $data_void[]="1"; - $legend_void[]="N/A"; - $p1 = new PiePlot3D($data_void); - $p1->SetLegends($legend_void); - } - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.5); - $p1->SetCenter(0.3); - $p1->value->SetColor("#f5f5f5"); // Invisible - $graph->legend->SetAbsPos(5,5,'right','top'); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - - -function graphic_agentaccess($id_agent, $periodo){ - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_line.php"); - require ("../include/languages/language_".$language_code.".php"); - $color ="#437722"; // Green pandora 1.1 octopus - - $agent_interval = give_agentinterval($id_agent); - $intervalo = 30 * $config_graph_res; // Desired interval / range between dates - $intervalo_real = (86400 / $agent_interval); // 60x60x24 secs - if ($intervalo_real < $intervalo ) { - $intervalo = $intervalo_real; - - } - $fechatope = dame_fecha($periodo); - $horasint = $periodo / $intervalo; - - // $intervalo now stores "ideal" interval } - // interval is the number of rows that will store data. more rows, more resolution - - // Para crear las graficas vamos a crear un array de Ax4 elementos, donde - // A es el numero de posiciones diferentes en la grafica (30 para un mes, 7 para una semana, etc) - // y los 4 valores en el ejeY serian los detallados a continuacion: - // Rellenamos la tabla con un solo select, y los calculos se hacen todos sobre memoria - // esto acelera el tiempo de calculo al maximo, aunque complica el algoritmo :-) - - // Creamos la tabla (array) con los valores para el grafico. Inicializacion - for ($x = 0; $x <$intervalo; $x++) { - $valores[$x][0] = 0; // [0] Valor (contador) - $valores[$x][1] = 0; // [0] Valor (contador) - $valores[$x][2] = dame_fecha($horasint * $x); // [2] Rango superior de fecha para ese rango - $valores[$x][3] = dame_fecha($horasint*($x+1)); // [3] Rango inferior de fecha para ese rango - } - $sql1="SELECT * FROM tagent_access WHERE id_agent = ".$id_agent." and timestamp > '".$fechatope."'"; - - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - for ($i = 0; $i < $intervalo; $i++){ - if (($row["timestamp"] < $valores[$i][2]) and ($row["timestamp"] >= $valores[$i][3]) ){ - // entra en esta fila - $valores[$i][0]++; - } - } - - } - $valor_maximo = 0; - for ($i = 0; $i < $intervalo; $i++) { // 30 entries in graph, one by day - $grafica[]=$valores[$i][0]; - - } - - // Create graph - $graph = new Graph(280,70); - $graph-> img-> SetImgFormat("gif"); - $graph->SetMargin(25,5,3,3); - $graph->SetScale("textlin",0,0,0,0); - $graph->SetAlphaBlending(true); - - $graph->yaxis->HideTicks(false); - $graph->xaxis->HideTicks(true); - $graph->xaxis->HideLabels(true); - $graph->yaxis->HideLabels(false); - - $graph->SetMarginColor('#f5f5f5'); - $graph->img->SetCanvasColor('#f5f5f5'); - $graph->SetFrame(True,'#f5f5f5',0); - - - // Linea del eje Y de color - // $graph->ygrid->SetFill(true,'#EFEFEF@0.6','#BBCCFF@0.6'); - // $graph->xgrid->Show(); - - // Titulo guay - //$graph->tabtitle->Set("Access Access"); - //$graph->xaxis->SetTickLabels("Que ostias"); - $graph->xaxis->SetFont(FF_FONT0); - $graph->xaxis->SetLabelAngle(90); - //$graph->xaxis->SetTextLabelInterval(ceil($intervalo / 10)); - $graph->yaxis->SetFont(FF_FONT0); - // Creacion de la linea de datos - - - $line1=new LinePlot($grafica); - $line1->SetColor($color); - $line1->SetWeight(1); - $line1->SetFillColor($color."@0.2"); - //$line1->SetLegend($lang_label["med"]); - - // A�dimos la linea a la imagen - $line1->SetFillColor($color."@0.2"); - $graph->Add($line1); - - //$graph->legend->Pos(0.01,0.2,"right","center"); - - // Lineas eje Y por encima del grafico - //$graph->SetGridDepth(DEPTH_BACK); - // Antialias - //$graph->img->SetAntiAliasing(); - // Mostramos la imagen - $graph->Stroke(); -} - - -function grafico_incidente_estados() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(0,0,0,0); - // 0 - Abierta / Sin notas - // 2 - Descartada - // 3 - Caducada - // 13 - Cerrada - $sql1="SELECT * FROM tincidencia"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - if ($row["estado"] == 0) - $data[0]=$data[0]+1; - if ($row["estado"] == 2) - $data[1]=$data[1]+1; - if ($row["estado"] == 3) - $data[2]=$data[2]+1; - if ($row["estado"] == 13) - $data[3]=$data[3]+1; - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - $graph = new PieGraph(370,180,"auto"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["incident_status"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->setShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.4); - $p1->SetCenter(0.3); - $legend = array ("Open Incident", "Closed Incident", "Outdated", "Invalid"); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function grafico_incidente_prioridad() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(0,0,0,0,0,0); - // 0 - Abierta / Sin notas - // 2 - Descartada - // 3 - Caducada - // 13 - Cerrada - $sql1="SELECT * FROM tincidencia"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - if ($row["prioridad"] == 0) - $data[0]=$data[0]+1; - if ($row["prioridad"] == 1) - $data[1]=$data[1]+1; - if ($row["prioridad"] == 2) - $data[2]=$data[2]+1; - if ($row["prioridad"] == 3) - $data[3]=$data[3]+1; - if ($row["prioridad"] == 4) - $data[4]=$data[4]+1; - if ($row["prioridad"] == 10) - $data[5]=$data[5]+1; - } - - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - - - $graph = new PieGraph(370,180,"auto"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["incident_priority"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.4); - $p1->SetCenter(0.3); - $legend = array ("Informative","Low","Medium","Serious", "Very serious", "Maintance"); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function graphic_incident_group() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT distinct id_grupo FROM tincidencia "; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $sql1="SELECT COUNT(id_incidencia) FROM tincidencia WHERE id_grupo = ".$row[0]; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - $data[] = $row2[0]; - $legend[] = dame_nombre_grupo($row[0])."(".$row2[0].")"; - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++){ - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - } - - $ajuste_altura = sizeof($data) * 20; - $graph = new PieGraph(370,80+$ajuste_altura,'auto'); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["incident_group"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.25); - $p1->SetCenter(0.3); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function graphic_incident_user() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT distinct id_usuario FROM tincidencia "; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $sql1="SELECT COUNT(id_incidencia) FROM tincidencia WHERE id_usuario = '".$row[0]."'"; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - $data[] = $row2[0]; - $legend[] = $row[0]."(".$row2[0].")"; - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++){ - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - } - - $ajuste_altura = sizeof($data) * 20; - $graph = new PieGraph(370,80+$ajuste_altura,'auto'); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["incident_user"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.25); - $p1->SetCenter(0.3); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function graphic_user_activity() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT DISTINCT ID_usuario FROM tsesion "; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $entrada= entrada_limpia($row[0]); - $sql1='SELECT COUNT(ID_usuario) FROM tsesion WHERE ID_usuario = "'.$entrada.'"'; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - $data[] = $row2[0]; - $legend[] = substr($row[0],0,16)."(".$row2[0].")"; - } - - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++){ - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - } - - $ajuste_altura = sizeof($data) * 20; - $graph = new PieGraph(500,80+$ajuste_altura,'auto'); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["users_statistics"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.25); - $p1->SetCenter(0.3); - $p1->SetLegends($legend); - $graph->legend->Pos(0.05,0.49,"right","center"); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function graphic_incident_source() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT DISTINCT origen FROM tincidencia"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $sql1="SELECT COUNT(id_incidencia) FROM tincidencia WHERE origen = '".$row[0]."'"; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - $data[] = $row2[0]; - $legend[] = $row[0]."(".$row2[0].")"; - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++){ - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - } - - $ajuste_altura = sizeof($data) * 20; - $graph = new PieGraph(370,80+$ajuste_altura,'auto'); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["incident_source"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.25); - $p1->SetCenter(0.3); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} -function grafico_db_agentes_modulos() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_bar.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT * FROM tagente"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $sql1="SELECT COUNT(id_agente_modulo) FROM tagente_modulo WHERE id_agente = ".$row["id_agente"];; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - $data[] = $row2[0]; - $legend[] = $row["nombre"]; - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - - $ajuste_altura = sizeof($data) * 20; - //$graph = new PieGraph(400,140+$ajuste_altura,"auto"); - $graph = new Graph(400,140+$ajuste_altura,'auto'); - $graph->SetScale("textlin"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["modules_per_agent"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->yaxis->scale->SetGrace(0); - $graph->yaxis->SetLabelAlign('center','bottom'); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $graph->xaxis->SetLabelMargin(5); - $graph->Set90AndMargin(100,20,50,30); - $p1 = new BarPlot($data); - $p1->value->SetFormat('%.0f '); - $p1->value->Show(); - $p1->value->SetAlign('left','center'); - $p1->SetFillColor("#00bf00"); - $p1->SetWidth(0.6); - $p1->SetShadow(); - $graph->yaxis->SetLabelFormat('%d'); - $graph->xaxis->SetTickLabels($legend); - $graph->legend->Pos(0.05,0.49,"right","center"); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); - -} - -function grafico_eventos_usuario() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT * FROM tusuario"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $sql1="SELECT COUNT(id_evento) FROM tevento WHERE id_usuario = '".$row["id_usuario"]."'"; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - if ($row2[0] > 0){ - $data[] = $row2[0]; - $legend[] = $row["id_usuario"]." ( $row2[0] )"; - } - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - - $ajuste_altura = sizeof($data) * 17; - $graph = new PieGraph(430,170+$ajuste_altura,"auto"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["events_per_user"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.2); - $p1->SetCenter(0.3); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function grafico_eventos_total() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $total = 0; - - $sql1="SELECT COUNT(id_evento) FROM tevento WHERE estado = 1 "; - $result=mysql_query($sql1); - $row=mysql_fetch_array($result); - $data[] = $row[0]; - $legend[] = "Revised ( $row[0] )"; - $total = $row[0]; - - $sql1="SELECT COUNT(id_evento) FROM tevento WHERE estado = 0 "; - $result=mysql_query($sql1); - $row=mysql_fetch_array($result); - $data[] = $row[0]; - $total = $total + $row[0]; - $legend[] = "Not Revised ( $row[0] )"; - - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor=0; $mayor_data=0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - - $graph = new PieGraph(430,200,"auto"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["event_total"]." ( $total )"); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.4); - $p1->SetCenter(0.28); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function grafico_eventos_grupo() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT * FROM tgrupo"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - $sql1="SELECT COUNT(id_evento) fROM tevento WHERE id_grupo = ".$row["id_grupo"]; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - if ($row2[0] > 0){ - $data[] = $row2[0]; - $legend[] = $row["nombre"]." ( $row2[0] )"; - } - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor=0; $mayor_data=0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - $total_grupos = sizeof($data); - $ajuste_altura = $total_grupos * 10; - - $graph = new PieGraph(430,150+$ajuste_altura,"auto"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["events_per_group"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.35); - $p1->SetCenter(0.28); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function grafico_db_agentes_paquetes() { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_bar.php"); - require ("../include/languages/language_".$language_code.".php"); - - $data = array(); - $legend = array(); - $sql1="SELECT distinct (id_agente) FROM tagente_datos"; - $result=mysql_query($sql1); - while ($row=mysql_fetch_array($result)){ - if (! is_null($row["id_agente"])){ - $sql1="SELECT COUNT(id_agente) FROM tagente_datos WHERE id_agente = ".$row["id_agente"]; - $result3=mysql_query($sql1); - if ($row3=mysql_fetch_array($result3)){ - $data[]= $row3[0]; - $legend[] = dame_nombre_agente($row[0]); - } - } - } - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - - $ajuste_altura = sizeof($data) * 20; - $graph = new Graph(400,140+$ajuste_altura,'auto'); - $graph->SetScale("textlin"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["packets_by_agent"]); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->yaxis->scale->SetGrace(0); - $graph->yaxis->SetLabelAlign('center','bottom'); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $graph->xaxis->SetLabelMargin(5); - $graph->Set90AndMargin(100,20,50,30); - $p1 = new BarPlot($data); - $p1->value->SetFormat('%.0f '); - $p1->value->Show(); - $p1->value->SetAlign('left','center'); - $p1->SetFillColor("#0000fd"); - $p1->SetWidth(0.6); - $p1->SetShadow(); - $graph->yaxis->SetLabelFormat('%d'); - $graph->xaxis->SetTickLabels($legend); - $graph->legend->Pos(0.05,0.49,"right","center"); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function grafico_db_agentes_purge($id_agente) { - include ("../include/config.php"); - include ("jpgraph/jpgraph.php"); - include ("jpgraph/jpgraph_pie.php"); - include ("jpgraph/jpgraph_pie3d.php"); - require ("../include/languages/language_".$language_code.".php"); - - // All data (now) - $purge_all=date("Y-m-d H:i:s",time()); - - // 1 day - $d1_year = date("Y", time()-28800); - $d1_month = date("m", time()-28800); - $d1_day = date ("d", time()-28800); - $d1_hour = date ("H", time()-28800); - $minuto = date("i",time()); - $segundo = date("s",time()); - $d1 = $d1_year."-".$d1_month."-".$d1_day." ".$d1_hour.":".$minuto.":".$segundo.""; - - // 3 days - $d3_year = date("Y", time()-86400); - $d3_month = date("m", time()-86400); - $d3_day = date ("d", time()-86400); - $d3_hour = date ("H", time()-86400); - $d3 = $d3_year."-".$d3_month."-".$d3_day." ".$d3_hour.":".$minuto.":".$segundo.""; - - // Fecha 24x7 Horas (una semana) - $week_year = date("Y", time()-604800); - $week_month = date("m", time()-604800); - $week_day = date ("d", time()-604800); - $week_hour = date ("H", time()-604800); - $d7 = $week_year."-".$week_month."-".$week_day." ".$week_hour.":".$minuto.":".$segundo.""; - - // Fecha 24x7x2 Horas (dos semanas) - $week2_year = date("Y", time()-1209600); - $week2_month = date("m", time()-1209600); - $week2_day = date ("d", time()-1209600); - $week2_hour = date ("H", time()-1209600); - $d14 = $week2_year."-".$week2_month."-".$week2_day." ".$week2_hour.":".$minuto.":".$segundo.""; - - // Fecha de hace 24x7x30 Horas (un mes) - $month_year = date("Y", time()-2592000); - $month_month = date("m", time()-2592000); - $month_day = date ("d", time()-2592000); - $month_hour = date ("H", time()-2592000); - $d30 = $month_year."-".$month_month."-".$month_day." ".$month_hour.":".$minuto.":".$segundo.""; - - // Three months - $month3_year = date("Y", time()-7257600); - $month3_month = date("m", time()-7257600); - $month3_day = date ("d", time()-7257600); - $month3_hour = date ("H", time()-7257600); - $d90 = $month3_year."-".$month3_month."-".$month3_day." ".$month3_hour.":".$minuto.":".$segundo.""; - - $data = array(); - $legend = array(); - - $fechas= array($d90, $d30, $d7, $d1); - $fechas_label = array("> 30 days","7-30 days","2-7 days","24Hr"); - - // Calc. total packets - $sql1="SELECT COUNT(id_agente_datos) FROM tagente_datos";; - $result2=mysql_query($sql1); - $row2=mysql_fetch_array($result2); - $total = $row2[0]; - - for ($a=0;$a<sizeof($fechas);$a++){ // 4 x intervals will be enought, increase if your database is very very quickly :) - if ($a==3) - $sql1="SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE timestamp >= '".$fechas[$a]."' "; - else - $sql1="SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE timestamp >= '".$fechas[$a]."' AND timestamp < '".$fechas[$a+1]."' "; - $result=mysql_query($sql1); - $row=mysql_fetch_array($result); - $data[] = $row[0]; - $legend[]=$fechas_label[$a]." ( ".$row[0]." )"; - } - - // Sort array by bubble method (yes, I study more methods in university, but if you want more speed, please, submit a patch :) - // or much better, pay me to do a special version for you, highly optimized :-)))) - for ($a=0;$a < sizeof($data);$a++){ - for ($b=$a; $b <sizeof($data); $b++) - if ($data[$b] > $data[$a]){ - $temp = $data[$a]; - $temp_label = $legend[$a]; - $data[$a] = $data[$b]; - $legend[$a] = $legend[$b]; - $data[$b] = $temp; - $legend[$b] = $temp_label; - } - } - $mayor = 0; - $mayor_data =0; - for ($a=0;$a < sizeof($data); $a++) - if ($data[$a] > $mayor_data){ - $mayor = $a; - $mayor_data = $data[$a]; - } - - $graph = new PieGraph(500,200,"auto"); - $graph->SetMarginColor('white@0.2'); - $graph->title->Set($lang_label["packets_by_date"]." ( Tot - $total ) "); - $graph->title->SetFont(FF_FONT1,FS_BOLD); - $graph->SetShadow(); - $graph->SetAlphaBlending(); - $graph->SetFrame(true); - $p1 = new PiePlot3D($data); - $p1->ExplodeSlice($mayor); - $p1->SetSize(0.35); - $p1->SetCenter(0.3); - $p1->SetLegends($legend); - $graph->Add($p1); - $graph->img->SetAntiAliasing(); - $graph->Stroke(); -} - -function drawWarning($width,$height) { - include ("../include/config.php"); - require ("../include/languages/language_".$language_code.".php"); - if ($width == 0) { - $width = 50; - } - if ($height == 0) { - $height = 30; - } - - - $image = imagecreate($width,$height); - //colors - $back = ImageColorAllocate($image,255,255,255); - $border = ImageColorAllocate($image,0,0,0); - $red = ImageColorAllocate($image,255,60,75); - $fill = ImageColorAllocate($image,44,81,150); - - ImageFilledRectangle($image,0,0,$width-1,$height-1,$back); - ImageRectangle($image,0,0,$width-1,$height-1,$border); - ImageTTFText($image, 8, 0, ($width/2)-($width/10), ($height/2)+($height/5), $border, $config_fontpath, $lang_label["no_data"]); - imagePNG($image); - imagedestroy($image); -} - -function progress_bar($progress,$width,$height) { - // Copied from the PHP manual: - // http://us3.php.net/manual/en/function.imagefilledrectangle.php - // With some adds from sdonie at lgc dot com - // Get from official documentation PHP.net website. Thanks guys :-) - // Code ripped from Babel Project :-) - function drawRating($rating,$width,$height) { - include ("../include/config.php"); - require ("../include/languages/language_".$language_code.".php"); - if ($width == 0) { - $width = 150; - } - if ($height == 0) { - $height = 20; - } - - //$rating = $_GET['rating']; - $ratingbar = (($rating/100)*$width)-2; - - $image = imagecreate($width,$height); - //colors - $back = ImageColorAllocate($image,255,255,255); - $border = ImageColorAllocate($image,0,0,0); - $red = ImageColorAllocate($image,255,60,75); - $fill = ImageColorAllocate($image,44,81,150); - - ImageFilledRectangle($image,0,0,$width-1,$height-1,$back); - if ($rating > 100) - ImageFilledRectangle($image,1,1,$ratingbar,$height-1,$red); - else - ImageFilledRectangle($image,1,1,$ratingbar,$height-1,$fill); - ImageRectangle($image,0,0,$width-1,$height-1,$border); - if ($rating > 50) - if ($rating > 100) - ImageTTFText($image, 8, 0, ($width/3)-($width/10), ($height/2)+($height/5), $back, $config_fontpath,$lang_label["out_of_limits"]); - else - ImageTTFText($image, 8, 0, ($width/2)-($width/10), ($height/2)+($height/5), $back, $config_fontpath, $rating."%"); - else - ImageTTFText($image, 8, 0, ($width/2)-($width/10), ($height/2)+($height/5), $border, $config_fontpath, $rating."%"); - imagePNG($image); - imagedestroy($image); - } - Header("Content-type: image/png"); - drawRating($progress,$width,$height); -} - - - -// ***************************************************************************************************************** -// MAIN Code -// parse get parameters -// ***************************************************************************************************************** - -if (isset($_GET["tipo"])){ - if ($_GET["tipo"]=="sparse"){ - if (isset($_GET["id"]) and (isset($_GET["label"])) and ( isset($_GET["periodo"])) and (isset ($_GET["intervalo"])) AND (isset ($_GET["color"])) ){ - $id = $_GET["id"]; - $color = $_GET["color"]; - $tipo = $_GET["tipo"]; - $periodo = $_GET["periodo"]; - $intervalo = $_GET["intervalo"]; - $label = $_GET["label"]; - $color = "#".$color; - grafico_modulo_sparse($id, $periodo, $intervalo, $label, $color); - } - } - elseif ($_GET["tipo"] =="estado_incidente") - grafico_incidente_estados(); - elseif ($_GET["tipo"] =="prioridad_incidente") - grafico_incidente_prioridad(); - elseif ($_GET["tipo"]=="db_agente_modulo") - grafico_db_agentes_modulos(); - elseif ($_GET["tipo"]=="db_agente_paquetes") - grafico_db_agentes_paquetes(); - elseif ($_GET["tipo"] =="db_agente_purge") - grafico_db_agentes_purge(-1); - elseif ($_GET["tipo"] =="group_events") - grafico_eventos_grupo(); - elseif ($_GET["tipo"] =="user_events") - grafico_eventos_usuario(); - elseif ($_GET["tipo"] =="total_events") - grafico_eventos_total(); - elseif ($_GET["tipo"] =="group_incident") - graphic_incident_group(); - elseif ($_GET["tipo"] =="user_incident") - graphic_incident_user(); - elseif ($_GET["tipo"] =="source_incident") - graphic_incident_source(); - elseif ($_GET["tipo"] =="user_activity") - graphic_user_activity(); - elseif ($_GET["tipo"] == "agentaccess") - graphic_agentaccess($_GET["id"], $_GET["periodo"]); - elseif ($_GET["tipo"] == "agentmodules") - graphic_agentmodules($_GET["id"]); - elseif ( $_GET["tipo"] =="progress"){ - $percent= $_GET["percent"]; - $width= $_GET["width"]; - $height= $_GET["height"]; - progress_bar($percent,$width,$height); - } -} -?> \ No newline at end of file diff --git a/pandora_console/reporting/old_jpg_functions/stat_win.php b/pandora_console/reporting/old_jpg_functions/stat_win.php deleted file mode 100644 index 48e3639519..0000000000 --- a/pandora_console/reporting/old_jpg_functions/stat_win.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -// Pandora - The Free Monitoring System -// This code is protected by GPL license. -// Este codigo esta protegido por la licencia GPL. -// Sancho Lerena <slerena@gmail.com>, 2003-2006 - -// Cargamos variables globales -session_start(); -include ("../include/config.php"); -include ("../include/functions.php"); -include("../include/functions_db.php"); -include("../include/languages/language_".$language_code.".php"); -echo '<style>'; -include("../include/styles/pandora.css"); -echo '</style>'; -if (comprueba_login() == 0) { - // Has access to this page ??? - if (isset($_GET["tipo"]) AND isset($_GET["id"])) { - $tipo =entrada_limpia($_GET["tipo"]); - $id_agente_modulo = entrada_limpia($_GET["id"]); - } - else { - echo "<h3 class='error'>".$lang_label["graf_error"]."</h3>"; - exit; - } - - // Nota: En los intervalos, se han aumentado por encima de los 24 del grafico diario y los 7 del semanal para - // que la grafica tenga mas resolucion. Cuanto mayor sea el intervalo mas tardara la grafica en generarse !!!. - - // TODO: Crear una variable para que se pueda utilizar como factor de resolucion de graficos y parametrizarlo en un - // archivo de configuracion. - - $module_interval = give_moduleinterval($id_agente_modulo); - // Interval defined for this module or agent general interval, if interval for this specific module not defined - $module_interval = $module_interval / 60; // Convert to resol / minute - // Please be caution, interval now is in MINUTES not in seconds - // interval is the number of rows that will store data. more rows, more resolution - - switch ($tipo) { - case "mes": $intervalo = 30 * $config_graph_res; - $intervalo_real = (43200 / $module_interval); - if ($intervalo_real < $intervalo ){ - $intervalo = $intervalo_real; - } - echo "<img src='fgraph.php?id=".$id_agente_modulo."&color=6e90ff&tipo=sparse&periodo=43200&intervalo=".$intervalo."&label=".$lang_label["month_graph"]."' border=0>"; - break; - - case "dia": $intervalo = 24 * $config_graph_res; - $intervalo_real = (1440 / $module_interval); - if ($intervalo_real < $intervalo ){ - $intervalo = $intervalo_real; - } - echo "<img src='fgraph.php?id=".$id_agente_modulo."&color=f3c330&tipo=sparse&periodo=1440&intervalo=".$intervalo."&label=".$lang_label["day_graph"]."' border=0 alt=''>"; - break; - case "semana": $intervalo = 28 * $config_graph_res; - $intervalo_real = (10080 / $module_interval); - if ($intervalo_real < $intervalo ) { - $intervalo = $intervalo_real; - } - echo "<img src='fgraph.php?id=".$id_agente_modulo."&color=e366cd&tipo=sparse&periodo=10080&intervalo=".$intervalo."&label=".$lang_label["week_graph"]."' border=0 alt=''>"; - break; - case "hora": $intervalo = 5 * $config_graph_res; - $intervalo_real = 60 / $module_interval; - if ($intervalo_real < $intervalo ) { - $intervalo = $intervalo_real; - } - // $intervalo=20; - echo "<img src='fgraph.php?id=".$id_agente_modulo."&color=40d840&tipo=sparse&periodo=60&intervalo=".$intervalo."&label=".$lang_label["hour_graph"]."' border=0 alt=''>"; - break; - - } -} // Fin pagina - -?> \ No newline at end of file diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog new file mode 100644 index 0000000000..e69de29bb2