Laravel Octane

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 data transfer must be performed at the end of the HTTP request life cycle.

So instead of using the normal WebRequestMonitoring middelware you should attach to your routes the Octane specialized middleware.

Configure the Octane middleware

Register the InspectorOctaneMiddleware class instead of WebRequestMonitoring:

Laravel 11

use \Inspector\Laravel\Middleware\InspectorOctaneMiddleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        // routes
    )
    ->withMiddleware(function (Middleware $middleware) {
        // Append the middleware
        $middleware->appendToGroup('web', InspectorOctaneMiddleware::class)
            ->appendToGroup('api', InspectorOctaneMiddleware::class);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

Laravel <= 10

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        ...,
        //\Inspector\Laravel\Middleware\WebRequestMonitoring::class,
        \Inspector\Laravel\Middleware\InspectorOctaneMiddleware::class,
    ],
    
    'api' => [
        ...,
        //\Inspector\Laravel\Middleware\WebRequestMonitoring::class,
        \Inspector\Laravel\Middleware\InspectorOctaneMiddleware::class,
    ],
]

Now Inspector is able to recognize the end of an HTTP requests and monitor your application properly.

No configuration is needed for artisan commands and background jobs. They will continue to be monitored as usual.

Last updated