コード例 #1
0
ファイル: NewrelicMiddleware.php プロジェクト: evaneos/pyrite
 /**
  * @param Request $request
  * @param int     $type
  * @param bool    $catch
  *
  * @return Response|void
  */
 public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true)
 {
     if ($type === HttpKernelInterface::SUB_REQUEST) {
         if ($request->attributes->get('exception') instanceof \Exception) {
             $e = $request->attributes->get('exception');
             $this->newRelic->noticeError($e->getMessage(), $e);
         }
         return $this->app->handle($request, $type, $catch);
     }
     foreach ($this->loggerFactory->getTags() as $name => $value) {
         $this->newRelic->addCustomParameter($name, $value);
     }
     $this->newRelic->addCustomParameter('url', $request->getPathInfo());
     $this->newRelic->addCustomParameter('content_type', $request->getContentType());
     $routeName = $request->attributes->get('_route');
     if (null !== $routeName) {
         $routeName = explode('.', $routeName);
         $this->newRelic->nameTransaction($routeName[0]);
     }
     $response = $this->app->handle($request, $type, $catch);
     $this->newRelic->addCustomParameter('result_code', $response->getStatusCode());
     return $response;
 }