// Stop chrono if not already done $chrono = CApp::$chrono; if ($chrono->step > 0) { $chrono->stop(); } $log->duration += round(floatval($chrono->total), 3); // System probes $rusage = getrusage(); $log->processus += round(floatval($rusage["ru_utime.tv_usec"]) / 1000000 + $rusage["ru_utime.tv_sec"], 3); $log->processor += round(floatval($rusage["ru_stime.tv_usec"]) / 1000000 + $rusage["ru_stime.tv_sec"], 3); $log->peak_memory += memory_get_peak_usage(); // SQL stats $log->request += round(floatval($ds->chrono->total), 3); $log->nb_requests += $ds->chrono->nbSteps; // Bandwidth $log->size += CApp::getOuputBandwidth(); //$log->other_bandwidth += CApp::getOtherBandwidth(); // Error log stats $log->errors += CApp::$performance["error"]; $log->warnings += CApp::$performance["warning"]; $log->notices += CApp::$performance["notice"]; CAccessLog::bufferize(array($log)); if (!CAppUI::conf("log_datasource_metrics")) { return; } $dslogs = array(); foreach (CSQLDataSource::$dataSources as $_datasource) { if ($_datasource) { $dslog = new CDataSourceLog(); $dslog->module_action_id = $log->module_action_id; $dslog->datasource = $_datasource->dsn;