rollbar / rollbar-php-laravel

Rollbar error monitoring integration for Laravel projects
https://docs.rollbar.com/docs/laravel
140 stars 39 forks source link

How is max_items reset since RollbarLogger is set as singleton #139

Open ls-paulo opened 2 years ago

ls-paulo commented 2 years ago

According to the docs, max_items is "Maximum number of items sent in a single app request/response cycle".

The RollbarServiceProvider defines RollbarLogger as a singleton, in which the same instance will be returned on subsequent calls into the container.

Given the above, wouldn't be more appropriate to use scoped instead? As it would do exactly what the Rollbar docs state for max_items config?

danielmorell commented 1 month ago

You are correct that this would be an issue if running under Octane.

I looked into this a bit, and I think there will be some more changes required in how the core PHP SDK is configured since the default Rollbar::init() method will retain the previous RollbarLogger instance meaning RollbarLogger::reportCount may not start at 0 for each request/response cycle.

My initial thought is using Rollbar::scope() along with Laravel's Application:scoped() method should give us an isolated RollbarLogger instance.

There may need to also be some work to isolate the telemetry queue once that released.

However, I need to spend more time making sure the core SDK is safe to run concurrently.