FEATURE: add simple view for requests and queries

This commit is contained in:
Michal Kváček
2017-03-02 20:04:35 +01:00
parent d99c046103
commit 9c90e844b0
23 changed files with 347 additions and 54 deletions
+31 -10
View File
@@ -7,6 +7,8 @@ use Modules\Profiler\Entities\QueryLog;
class Profiler
{
private $queries = [];
public function handle(Request $request, $next)
{
\DB::enableQueryLog();
@@ -15,28 +17,47 @@ class Profiler
public function terminate(Request $request, $response)
{
$this->logRequest($request);
$this->logQueries();
$this->queries = \DB::getQueryLog();
$requestId = $this->logRequest($request);
$this->logQueries($requestId);
}
/**
*
*
* @param Request $request
*
* @return mixed
*/
protected function logRequest(Request $request)
{
$url = $request->fullUrl();
$method = $request->getMethod();
$time = (microtime(true) - LARAVEL_START) * 1000;
HttpLog::create(['url' => $url, 'method' => $method, 'time' => $time]);
$data = ['url' => $url, 'method' => $method, 'time' => $time];
if (function_exists('sys_getloadavg')) {
$load = sys_getloadavg();
$data['load_1'] = $load[0];
$data['load_5'] = $load[1];
$data['load_15'] = $load[2];
}
$http = HttpLog::create($data);
return $http->id;
}
protected function logQueries()
protected function logQueries($httpLogId = null)
{
$queries = \DB::getQueryLog();
foreach ($queries as $query) {
foreach ($this->queries as $query) {
QueryLog::create([
'query' => $query['query'],
'bindings' => $query['bindings'],
'time' => $query['time']
'query' => $query['query'],
'bindings' => $query['bindings'],
'time' => $query['time'],
'http_log_id' => $httpLogId
]);
}
}