Diferencia entre revisiones de «Usuario:ManuelRomero/proyecto/proyectoIternova/Gráficas»
De WikiEducator
(3 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 3: | Línea 3: | ||
*Preparar una matriz con la siguiente estructura. | *Preparar una matriz con la siguiente estructura. | ||
* | * | ||
+ | {|width="300px" align="center" style="border: 1px solid red;" cellpadding="0" cellspacing="0" | ||
+ | |- | ||
+ | |style="border: 1px solid;" |FECHA | ||
+ | |style="border: 1px solid;" |SERVICIO | ||
+ | |- | ||
+ | |style="border: 1px solid;" |Fecha 1: 01-01-2017 10:43 | ||
+ | |style="border: 1px solid;" |valor ssh 1 | ||
+ | |- | ||
+ | |style="border: 1px solid;" |Fecha 2: 03-03-2017 12:43 | ||
+ | |style="border: 1px solid;" |valor ssh 2 | ||
+ | |- | ||
+ | |} | ||
+ | *Para ello genero previamente a partir de una consulta en un interavlo de fechas de un determinado host, la siguiente información | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {|width="300px" align="center" style="border: 1px solid red;" cellpadding="0" cellspacing="0" | ||
+ | |- | ||
+ | |style="border: 1px solid;" |host | ||
+ | |style="border: 1px solid;" |date | ||
+ | |style="border: 1px solid;" |servicios | ||
+ | |- | ||
+ | |style="border: 1px solid;" |id_ del host en la colección mongo | ||
+ | |style="border: 1px solid;" |--- | ||
+ | |style="border: 1px solid;" |ssh | ||
+ | |style="border: 1px solid;" |http | ||
+ | |style="border: 1px solid;" |... (mas servicios | ||
+ | |- | ||
+ | |style="border: 1px solid;" |------ | ||
+ | |style="border: 1px solid;" |Fecha 2: 03-03-2017 12:43 | ||
+ | |style="border: 1px solid;" |valor_ssh_per_1 | ||
+ | |style="border: 1px solid;" |valor_http_per_1 | ||
+ | |style="border: 1px solid;" |... (mas servicios | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | [[Imagen:CicloVida_Monitorizacion_BusquedaHost.png]] | ||
+ | <br> | ||
+ | Actúo en el método | ||
+ | Monitorizacion_Controller::view | ||
+ | Inserto el código | ||
+ | <source lang=php> | ||
+ | //Obtengo los servicios para obetner la gráfica de cada servicio | ||
+ | $services = $obj->servicios; | ||
+ | foreach ($services as $service) { | ||
+ | |||
+ | $data_ini = date("Y-m-d 00:00:00", time() - 24 * 60 * 60); //El día de ayer | ||
+ | $data_fin = date("Y-m-d 00:00:00", time()); //El día de ayer | ||
+ | |||
+ | $index = Monitorizacion_Controller_Services::get_index_to_services($service); | ||
+ | $service = Monitorizacion_Constants::getIndexNumberService($service); | ||
+ | echo "<h1>$service - $data_ini . $data_fin</h1>"; | ||
+ | var_dump($index); | ||
+ | echo "<h1>MRM</h1>"; | ||
+ | |||
+ | //$matriz_service = Monitorizacion_Controller_Services::generate_service_matrix($data_ini, $data_fin, $service); | ||
+ | //var_dump($matrix_service); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | *empiezo a implementar el método generate_service_matrix sin llegar a probar | ||
+ | <source lang=php> | ||
+ | /** | ||
+ | * | ||
+ | * @param type $data_ini fecha de inicio | ||
+ | * @param type $data_fin fecha de fin | ||
+ | * @param type $service servicio para obtener datos | ||
+ | * Obtiene una matriz de datos a partir de la información almacenada en mongo | ||
+ | * entre las fechas establecidas del servicio especificado | ||
+ | */ | ||
+ | public static function generate_service_matrix($data_ini, $data_fin, $service, $index, $host_id) { | ||
+ | |||
+ | $datos = null; | ||
+ | |||
+ | $date_current = date('Y-m-d 00:00:00'); | ||
+ | $obj_date_current = new DateTime($date_current, new DateTimeZone('UTC')); | ||
+ | |||
+ | $array_criterios = []; | ||
+ | |||
+ | $array_criterios[] = array('host_id', 'eq', $host, 'string'); | ||
+ | $array_criterios[] = array('data', 'eq', $service . '[' . $index . ']', 'string'); | ||
+ | $array_criterios[] = array('timestamp', 'he', $$data_ini, 'string'); | ||
+ | $array_criterios[] = array('timestamp', 'le', $data_fin, 'string'); | ||
+ | |||
+ | Logs_Controller::vardump($array_criterios); | ||
+ | /* | ||
+ | $array_obj_data = Monitorizacion_Modeldata::get_all($array_criterios, array('host_id' => 1, 'timestamp' => -1), 0, 1); | ||
+ | if (!empty($array_obj_data)) { | ||
+ | //Con reset retomamos el primer elemento del array o FALSE si está vacío | ||
+ | $datos = reset($array_obj_data); | ||
+ | } | ||
+ | return $datos; | ||
+ | * | ||
+ | */ | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | ==Dibujar la tabla== | ||
+ | *Ver el ejemplo en | ||
+ | Monitorizacion_Modules_Stats_View | ||
+ | Método | ||
+ | generate_totales | ||
+ | |||
+ | Antes de visualizar la gráfica, imprimir los datos con | ||
+ | Printer_Controller::getMatrixHTML($matriz) | ||
+ | Donde matriz debe de ser una estructura con los datos | ||
+ | |||
{|width="300px" align="center" style="border: 1px solid red;" cellpadding="0" cellspacing="0" | {|width="300px" align="center" style="border: 1px solid red;" cellpadding="0" cellspacing="0" | ||
|- | |- |
Última revisión de 01:19 25 ago 2017
Cómo generar gráficas
- Preparar una matriz con la siguiente estructura.
FECHA | SERVICIO |
Fecha 1: 01-01-2017 10:43 | valor ssh 1 |
Fecha 2: 03-03-2017 12:43 | valor ssh 2 |
- Para ello genero previamente a partir de una consulta en un interavlo de fechas de un determinado host, la siguiente información
host | date | servicios | ||
id_ del host en la colección mongo | --- | ssh | http | ... (mas servicios |
------ | Fecha 2: 03-03-2017 12:43 | valor_ssh_per_1 | valor_http_per_1 | ... (mas servicios |
Monitorizacion_Controller::view
Inserto el código
//Obtengo los servicios para obetner la gráfica de cada servicio $services = $obj->servicios; foreach ($services as $service) { $data_ini = date("Y-m-d 00:00:00", time() - 24 * 60 * 60); //El día de ayer $data_fin = date("Y-m-d 00:00:00", time()); //El día de ayer $index = Monitorizacion_Controller_Services::get_index_to_services($service); $service = Monitorizacion_Constants::getIndexNumberService($service); echo "<h1>$service - $data_ini . $data_fin</h1>"; var_dump($index); echo "<h1>MRM</h1>"; //$matriz_service = Monitorizacion_Controller_Services::generate_service_matrix($data_ini, $data_fin, $service); //var_dump($matrix_service); }
- empiezo a implementar el método generate_service_matrix sin llegar a probar
/** * * @param type $data_ini fecha de inicio * @param type $data_fin fecha de fin * @param type $service servicio para obtener datos * Obtiene una matriz de datos a partir de la información almacenada en mongo * entre las fechas establecidas del servicio especificado */ public static function generate_service_matrix($data_ini, $data_fin, $service, $index, $host_id) { $datos = null; $date_current = date('Y-m-d 00:00:00'); $obj_date_current = new DateTime($date_current, new DateTimeZone('UTC')); $array_criterios = []; $array_criterios[] = array('host_id', 'eq', $host, 'string'); $array_criterios[] = array('data', 'eq', $service . '[' . $index . ']', 'string'); $array_criterios[] = array('timestamp', 'he', $$data_ini, 'string'); $array_criterios[] = array('timestamp', 'le', $data_fin, 'string'); Logs_Controller::vardump($array_criterios); /* $array_obj_data = Monitorizacion_Modeldata::get_all($array_criterios, array('host_id' => 1, 'timestamp' => -1), 0, 1); if (!empty($array_obj_data)) { //Con reset retomamos el primer elemento del array o FALSE si está vacío $datos = reset($array_obj_data); } return $datos; * */ }
Dibujar la tabla
- Ver el ejemplo en
Monitorizacion_Modules_Stats_View
Método
generate_totales
Antes de visualizar la gráfica, imprimir los datos con
Printer_Controller::getMatrixHTML($matriz)
Donde matriz debe de ser una estructura con los datos
FECHA | SERVICIO |
Fecha 1: 01-01-2017 10:43 | valor ssh 1 |
Fecha 2: 03-03-2017 12:43 | valor ssh 2 |