Diferencia entre revisiones de «Usuario:ManuelRomero/proyecto/proyectoIternova/borrador»

De WikiEducator
Saltar a: navegación, buscar
Línea 1: Línea 1:
 
<source lang=php>
 
<source lang=php>
  public static function create_matrices_days( $data, $interval, $list_services ) {
+
  public static function create_matrices_last( $datas, $list_services, $hour ) {
        //En este caso queremos sacar un valor por día que sea la media de de ese día
+
         echo "<h2>MRM ---DEBUGANDO ...en create_matrices_fast </h2>";
 
+
         echo "<h2>MRM ---DEBUGANDO ... en matrices day (media por día)</h2>";
+
        $matrix = [];
+
 
+
 
+
 
+
 
+
 
         //Inicializo el primer nivel del array
 
         //Inicializo el primer nivel del array
         $matrix[ 'host' ] = array_values( $data )[ 0 ]->host_id;
+
         $matrix[ 'host' ] = array_values( $datas )[ 0 ]->host_id;
 
         $matrix[ 'date' ] = []; //Será un array indexado de las diferentes fechas
 
         $matrix[ 'date' ] = []; //Será un array indexado de las diferentes fechas
 
         $matrix[ 'services' ] = []; //Array asociativo con cada servicio cada uno tendrá un arrau con los índices
 
         $matrix[ 'services' ] = []; //Array asociativo con cada servicio cada uno tendrá un arrau con los índices
 +
        //  //Ahora recorremos para cada documento  (host - día)
 +
        //primero inicializamos las fechas
 +
        $min = "00";
  
 +
        //Nos quedamos con los dos array si los ubiera si no data2 tendrá un false
 +
        reset( $datas );
 +
        Logs_Controller::vardump( $hour );
 +
        $data1 = current( $datas );
 +
        $data2 = next( $datas );
 +
        Logs_Controller::vardump( $data1 );
 +
        Logs_Controller::vardump( $data2 );
  
 +
        $fecha = substr( $data1->timestamp, 0, 10 ) . " $hour:00:00";
 +
        $dateMAX = date( 'Y-m-d H:i:00', strtotime( $fecha . " -3 hour" ) );
 +
        $fecha = date( 'Y-m-d H:i:00', strtotime( $fecha . " -2 minute" ) );
 +
        $matrix[ 'date' ] = Charts_Controller::get_array_datetime_range( $dateMAX, $fecha, 60, 'H:i:00' );
  
  
        foreach ( $data as $data_host_day ) { //cada día registrado a un host concreto
 
//            //  //Ahora recorremos para cada documento  (host - día)
 
//            //primero inicializamos las fechas
 
//
 
//
 
//
 
////
 
            $s = substr( $data_host_day->timestamp, 0, 10 );
 
            $f_d = date( 'd-m-Y', strtotime( $s ) );
 
 
            $matrix[ 'date' ][] = $f_d;
 
 
 
            foreach ( $list_services as $service ) {
 
//                //inicializo el array
 
//
 
              $indexes_service = array_keys( $data_host_day->data[ $service ] );
 
//                //inicializo la fecha
 
 
//
 
                foreach ( $indexes_service as $index_service ) {
 
//                    //primer inicializo la matriz
 
//                    //me interesan solo los múltiplos de 30
 
//                    //Calculamos la media de cada hora
 
                    for ( $h = 0; $h <= 23; $h++ ) {
 
//                        Logs_Controller::vardump( $h );
 
//                        Logs_Controller::vardump( $index_service );
 
//                        Logs_Controller::vardump( $service );
 
  
                        $data_min_avg[] = Monitorizacion_Controller_Services::array_avg( $data_host_day->data[ $service ][ $index_service ][ $h ] );
+
        foreach ( $list_services as $service ) {
                    }//end while $hour
+
            $matrix[ 'services' ][ $service ] = [];
 +
            $indexes_service = array_keys( $data1->data[ $service ] );
  
  
 +
            //Para cada índice de ese servicio
 +
            $datas_of_mongo = [];
 +
            foreach ( $indexes_service as $index_service ) {
 +
                //Si hora =1 o 2 necesito datos de los dos días para generar la matriz
 +
                //Si no lo cogeré de cada día
  
                        $matrix[ 'services' ][ $service ][ $index_service ][] = Monitorizacion_Controller_Services::array_avg( $data_min_avg );
+
                switch ( $hour ) {
  
 +
                    case 0:
 +
                        $h = 21;
 +
                        //Primer array de documentos
 +
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
 +
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
 +
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
 +
                        break;
 +
                    case 1:
 +
                        $h = 22;
 +
                        //Primer array de documentos
 +
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
 +
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ $h + 1 ] );
 +
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] );
 +
                        break;
  
                     //                    Logs_Controller::vardump( $data_min_avg );
+
                     case 2:
//                    Logs_Controller::vardump( $matrix );
+
                        $h = 23;
              }//End foreach index (indices de los servicios
+
                        //Primer array de documentos
//                //                echo "FECHA      -     VALOR SERVICIO<br/>";
+
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
////                foreach ( $matrix as $f => $v ) {
+
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] );
////                    echo "$- $v<br />";
+
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 1 ] );
            }//End foreach $services
+
                        break;
        }//end foreach $data
+
                    default:
//        //ver matriz
+
                        Logs_Controller::vardump( $index_service );
//        echo "<h2>MRM ---DEBUGANDO ...  matriz con medias por día </h2>";
+
      Logs_Controller::vardump( $matrix );
+
//
+
  
 +
                        //Primer array de documentos
 +
                        $h = $hour - 2;
 +
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
 +
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
 +
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
 +
                }
 +
                $matrix[ 'services' ][ $service ][ $index_service ] = $datas_of_mongo;
 +
            }//End while index (indices de los servicios
 +
            //                echo "FECHA      -      VALOR SERVICIO<br/>";
 +
        }//End foreach $services
 +
        //ver matriz
 +
        Logs_Controller::vardump( $matrix );
  
         return $matrix;
+
         return ($matrix);
  
 
     }
 
     }
 
</source>
 
</source>

Revisión de 03:12 8 sep 2017

   public static function create_matrices_last( $datas, $list_services, $hour ) {
        echo "<h2>MRM ---DEBUGANDO ...en create_matrices_fast </h2>";
        //Inicializo el primer nivel del array
        $matrix[ 'host' ] = array_values( $datas )[ 0 ]->host_id;
        $matrix[ 'date' ] = []; //Será un array indexado de las diferentes fechas
        $matrix[ 'services' ] = []; //Array asociativo con cada servicio cada uno tendrá un arrau con los índices
        //  //Ahora recorremos para cada documento  (host - día)
        //primero inicializamos las fechas
        $min = "00";
 
        //Nos quedamos con los dos array si los ubiera si no data2 tendrá un false
        reset( $datas );
        Logs_Controller::vardump( $hour );
        $data1 = current( $datas );
        $data2 = next( $datas );
        Logs_Controller::vardump( $data1 );
        Logs_Controller::vardump( $data2 );
 
        $fecha = substr( $data1->timestamp, 0, 10 ) . " $hour:00:00";
        $dateMAX = date( 'Y-m-d H:i:00', strtotime( $fecha . " -3 hour" ) );
        $fecha = date( 'Y-m-d H:i:00', strtotime( $fecha . " -2 minute" ) );
        $matrix[ 'date' ] = Charts_Controller::get_array_datetime_range( $dateMAX, $fecha, 60, 'H:i:00' );
 
 
 
        foreach ( $list_services as $service ) {
            $matrix[ 'services' ][ $service ] = [];
            $indexes_service = array_keys( $data1->data[ $service ] );
 
 
            //Para cada índice de ese servicio
            $datas_of_mongo = [];
            foreach ( $indexes_service as $index_service ) {
                //Si hora =1 o 2 necesito datos de los dos días para generar la matriz
                //Si no lo cogeré de cada día
 
                switch ( $hour ) {
 
                    case 0:
                        $h = 21;
                        //Primer array de documentos
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
                        break;
                    case 1:
                        $h = 22;
                        //Primer array de documentos
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ $h + 1 ] );
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] );
                        break;
 
                    case 2:
                        $h = 23;
                        //Primer array de documentos
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] );
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 1 ] );
                        break;
                    default:
                        Logs_Controller::vardump( $index_service );
 
                        //Primer array de documentos
                        $h = $hour - 2;
                        $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ];
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
                        $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] );
                }
                $matrix[ 'services' ][ $service ][ $index_service ] = $datas_of_mongo;
            }//End while index (indices de los servicios
            //                echo "FECHA       -      VALOR SERVICIO<br/>";
        }//End foreach $services
        //ver matriz
        Logs_Controller::vardump( $matrix );
 
        return ($matrix);
 
    }