Open
Description
Summary
Currently, only Apache and PHP-FPM are supported as web servers in the New Relic agent. This means users cannot use performance-enhancing features such as Laravel Octane. OpenSwoole is a common server for Laravel Octane. Other alternatives supported include FrankenPHP and RoadRunner.
https://docs.newrelic.com/docs/apm/agents/php-agent/getting-started/php-agent-compatibility-requirements/#webserver
https://laravel.com/docs/12.x/octane
Desired Behavior
OpenSwoole should be added as a supported server in the New Relic PHP agent.
Additional context
I work on high-performance Laravel applications that depend on features in OpenSwoole and I cannot instrument them with New Relic.
Current error when launching Laravel Octane on OpenSwoole with New Relic agent installed:
[2025-03-27 02:22:50] production.ERROR: Undefined constant "Laravel\Octane\Commands\Concerns\SIGINT" {"exception":"[object] (Error(code: 0): Undefined constant \"Laravel\\Octane\\Commands\\Concerns\\SIGINT\" at /app/vendor/laravel/octane/src/Commands/Concerns/InteractsWithServers.php:174)
[stacktrace]
#0 /app/vendor/symfony/console/Application.php(978): Laravel\\Octane\\Commands\\StartCommand->getSubscribedSignals()
#1 /app/vendor/symfony/console/Application.php(316): Symfony\\Component\\Console\\Application->doRunCommand(Object(Laravel\\Octane\\Commands\\StartCommand), Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#2 /app/vendor/symfony/console/Application.php(167): Symfony\\Component\\Console\\Application->doRun(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#3 /app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(197): Symfony\\Component\\Console\\Application->run(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#4 /app/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1203): Illuminate\\Foundation\\Console\\Kernel->handle(Object(Symfony\\Component\\Console\\Input\\ArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))
#5 /app/artisan(13): Illuminate\\Foundation\\Application->handleCommand(Object(Symfony\\Component\\Console\\Input\\ArgvInput))
#6 {main}
"}
In InteractsWithServers.php line 174:
Undefined constant "Laravel\Octane\Commands\Concerns\SIGINT"