Example #1
0
 public function insertStats()
 {
     /* Get Database Size */
     if (Config::get('database.default') == "mysql") {
         $dbsize = DB::select('SELECT table_schema "Data Base Name",
                         SUM( data_length + index_length) / 1024 / 1024 "dbsize"
                         FROM information_schema.TABLES
                         WHERE table_schema = "' . Config::get('database.connections.mysql.database') . '"
                         GROUP BY table_schema ;');
     } else {
         $dbsize = DB::select("SELECT pg_database_size('" . Config::get('database.connections.pgsql.database') . "') as dbsize");
     }
     // Get Server Hostname
     $servername = gethostname();
     // Get Number of Clients
     $clientsNumber = Client::all()->count();
     // Get Number of Files Transfered
     $filesNumber = DB::table('file')->select(DB::raw('count(*) AS filesNumber'))->get();
     // Get Storage Bytes
     $bytesStorage = Media::sum('volbytes');
     //* Query For Hour Starts
     $dataInicio = date('Y-m-d', strtotime("-1 days")) . ' 18:29';
     $dataFim = date('Y-m-d') . ' 18:29';
     /* Query timediff Stats */
     $timediff = DB::table('job')->select(DB::raw('(max(starttime) - min(starttime)) AS timediff'))->where('starttime', '>=', $dataInicio)->where('endtime', '<=', $dataFim)->get();
     $hoursdiff = DB::table('job')->select(DB::raw("date_part('hour',  (max(starttime) - min(starttime))) AS hoursdiff"))->where('starttime', '>=', $dataInicio)->where('endtime', '<=', $dataFim)->get();
     $hoursbytes = DB::table('job')->select(DB::raw("(sum(jobbytes)/date_part('hour',  (max(starttime) - min(starttime)))) AS hoursbytes"))->where('starttime', '>=', $dataInicio)->where('endtime', '<=', $dataFim)->get();
     $query = DB::table('job')->where('starttime', '>=', $dataInicio)->where('endtime', '<=', $dataFim);
     $jobbytes = $query->sum('jobbytes');
     $starttime = $query->min('starttime');
     $endtime = $query->max('endtime');
     /* Data for Stats to Insert*/
     $daystats = array('data' => date('Y-m-d'), 'server' => $servername, 'bytes' => $bytesStorage, 'files' => $filesNumber[0]->filesnumber, 'clients' => $clientsNumber, 'databasesize' => $dbsize[0]->dbsize);
     $hourstats = array('data' => date('Y-m-d'), 'server' => $servername, 'bytes' => $jobbytes, 'starttime' => $starttime, 'endtime' => $endtime, 'timediff' => $timediff[0]->timediff, 'hoursdiff' => $hoursdiff[0]->hoursdiff, 'hourbytes' => $hoursbytes[0]->hoursbytes);
     $hourstats = Hoursstats::firstOrCreate($hourstats);
     $daystats = Daystats::firstOrCreate($daystats);
     $t = Hoursstats::insert($hourstats);
     $d = Daystats::insert($daystats);
 }