Resolve issue where custom exceptions are reported as errors in Datadog despite report() returning true when using Laravel Octane
Updated on
<?php namespace App\Exceptions; use Exception; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; class CustomErrorException extends Exception { public function render(Request $request): JsonResponse { return response()->json([ 'success' => false, 'message' => $this->message, ], 200); } public function report(): bool { return true; } }
I created a CustomErrorException
and set the report()
method to return true
, as shown in the code above. In Laravel, this prevents the exception from being reported. Therefore, when using PHP-FPM with Datadog, it does not get recorded as an error.
However, with Octane + Datadog, the exception is still reported as an error even in this case.
To resolve this issue, you can add the following to the $dontReport
array in Handler.php
:
protected $dontReport = [ CustomErrorException::class, ];
By doing this, the exception will no longer be reported as an error, even when using Octane + Datadog.
간단하게 설명해서, php-fpm + datadog 에서는 report() true 을 하면 exception error 가 집계되지 않는데, octane + datadog 에서는 report() true 이더라도 error 로 집계되는 문제가 있다.
이 문제를 해결하려면, Handler.php
의 $dontReport
에 Exception class를 추가해주면 해결 된다.