How to monitor a Laravel application served by Octane
By default Inspector register a shutdown function to transfer data from your application to Inspector at the end of each request lifecycle.
Since Octane runs your application in a long running process the shutdown functions will never be called until the Octane server is stopped.
You have to manually flush the data collected by Inspector at end of the HTTP request life cycle.
You can do this by extending the original
WebRequestMonitoringmiddleware provided by the Inspector package, and overwriting the terminate method to flush the data.
Use the command below to create the new
php artisan make:middleware InspectorOctaneMiddleware
Overwrite the terminate method to add the flush statement:
class InspectorOctaneMiddleware extends WebRequestMonitoring
* Handle tasks after the response has been sent to the browser.
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Http\Response $response
* @return void
public function terminate($request, $response)
The terminate method will run after the response has been sent to the browser, and the data will be sent asynchronously in the background.
Register the new middleware in
* The application's route middleware groups.
* @var array
protected $middlewareGroups = [
'web' => [
'api' => [
Now Inspector is able to recognize the end of a transaction and monitor your application properly.