Diferencia entre revisiones de «Usuario:ManuelRomero/proyecto/proyectoIternova/Gráficas»

De WikiEducator
Saltar a: navegación, buscar
 
(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 00: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

CicloVida Monitorizacion BusquedaHost.png
Actúo en el método

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