newrelic / newrelic-php-agent

The New Relic PHP Agent
https://opensource.newrelic.com/projects/newrelic/newrelic-php-agent
Apache License 2.0
120 stars 63 forks source link

Add support for RoadRunner #808

Closed tsantos84 closed 10 months ago

tsantos84 commented 10 months ago

Summary

Roadrunner is a server written in Go and is used to serve PHP applications. Its nature is different from PHP-FPM that has the concept of 'share-nothing' between HTTP requests. Roadrunner, in its turn, share state between requests which improve the performance considerably. The points is that New Relic PHP agent send transactions to its server as a non-web transaction since Roadrunner runs a cli PHP script to server the requests.

Desired Behavior

NewRelic PHP agent automatically detects the presence of Roadrunner and works exactly in the same way if the app were running on FPM.

Additional context

There is another web servers that follow the same principle of Roadrunner like Frankenphp and Swoole and a native integration to them would be great too.

tsantos84 commented 10 months ago

I've managed this issue by calling newrelic_background_job(false) on a symfony request event listener and now the transactions are displayed as web transaction on Rewrelic UI. I don't know if there is another improvement opportunity on Roadrunner <> Newrelic (possible yes), but I'll close this issue for now. Thanks.