- Readd support for Laravel Lumen (#579)
The Sentry SDK team is happy to announce the immediate availability of Sentry Laravel SDK v3.3.3.
- Fix
CheckIn
constructor argument order (#680) - Fix missing breadcrumbs for jobs throwing an exception (#633)
The Sentry SDK team is happy to announce the immediate availability of Sentry Laravel SDK v3.3.2.
- Fix "Object of class Closure could not be converted to string" error when tracing
redis_commands
(#668)
The Sentry SDK team is happy to announce the immediate availability of Sentry Laravel SDK v3.3.1.
- Fix scheduled commands running in the background not reporting success/failure (#664)
The Sentry SDK team is happy to announce the immediate availability of Sentry Laravel SDK v3.3.0. This release adds initial support for Cron Monitoring as well as new performance spans and breadcrumbs.
Warning Cron Monitoring is currently in beta. Beta features are still in-progress and may have bugs. We recognize the irony. If you have any questions or feedback, please email us at [email protected], reach out via Discord (#cronjobs), or open an issue.
-
Add inital support for Cron Monitoring (#659)
After creating your Cron Monitor on https://sentry.io, you can add the
sentryMonitor()
macro to your scheduled tasks defined in yourapp/Console/Kernel.php
file. This will let Sentry know if your scheduled task started, whether the task was successful or failed, and its duration.protected function schedule(Schedule $schedule) { $schedule->command('emails:send') ->everyHour() ->sentryMonitor('<your-monitor-slug>'); // add this line }
-
Add Livewire tracing integration (#657)
You can enable this feature by adding new config options to your
config/sentry.php
file.'breadcrumbs' => [ // Capture Livewire components in breadcrumbs 'livewire' => true, ], 'tracing' => [ // Capture Livewire components as spans 'livewire' => true, ],
-
Add Redis operation spans & cache event breadcrumbs (#656)
You can enable this feature by adding new config options to your
config/sentry.php
file.'breadcrumbs' => [ // Capture Laravel cache events in breadcrumbs 'cache' => true, ], 'tracing' => [ // Capture Redis operations as spans (this enables Redis events in Laravel) 'redis_commands' => env('SENTRY_TRACE_REDIS_COMMANDS', false), // Try to find out where the Redis command originated from and add it to the command spans 'redis_origin' => true, ],
-
Add HTTP client request breadcrumbs (#640)
You can enable this feature by adding a new config option to your
config/sentry.php
file.'breadcrumbs' => [ // Capture HTTP client requests information in breadcrumbs 'http_client_requests' => true, ],
-
Offer the installation of a JavaScript SDK when running
sentry:publish
(#647)
- Fix a log channel context crash when unexpected values are passed (#651)
The Sentry SDK team is happy to announce the immediate availability of Sentry Laravel SDK v3.2.0. This release adds support for Laravel 10.
- Add support for Laravel 10 (#630)
- Thanks to @jnoordsij for their contribution.
- Add
tracing.http_client_requests
option (#641)-
You can now disable HTTP client tracing in your
config/sentry.php
file'tracing' => [ 'http_client_requests' => true|false, // This feature is enabled by default ],
-
- Increase debug trace limit count to 20 in
Integration::makeAnEducatedGuessIfTheExceptionMaybeWasHandled()
(#622)- Look futher into the backtrace to check if
report()
was called.
- Look futher into the backtrace to check if
- Run the testsuite against PHP 8.2 (#624)
- Set
traces_sample_rate
tonull
by default (#616)-
Make sure to update your
config/sentry.php
.Replace
'traces_sample_rate' => (float)(env('SENTRY_TRACES_SAMPLE_RATE', 0.0)),
with
'traces_sample_rate' => env('SENTRY_TRACES_SAMPLE_RATE') === null ? null : (float)env('SENTRY_TRACES_SAMPLE_RATE'),
-
- Fix exceptions sent via the
report()
helper being marked as unhandled (#617)
- Fix missing scope information on unhandled exceptions (#611)
- Unhandled exceptions are now correctly marked as
handled: false
and displayed as such on the issues list and detail page (#608)- Make sure to update your
App/Exceptions/Handler.php
file to enable this new behaviour. See https://docs.sentry.io/platforms/php/guides/laravel/
- Make sure to update your
- Remove incorrect checks if performance tracing should be enabled and rely on the transaction sampling decision instead (#600)
- Fix
SENTRY_RELEASE
.env variable not working when using config caching (#603)
New features
- We are now creating more spans to give you better insights into the performance of your application
- Add a
http.client
span. This span indicates the time that is spent when using the Laravel HTTP client (#585) - Add a
http.route
span. This span indicates the time that is spent inside a controller method or route closure (#593) - Add a
db.transaction
span. This span indicates the time that is spent inside a database transaction (#594)
- Add a
- Add support for Dynamic Sampling, allowing developers to set a server-side sampling rate without the need to re-deploy their applications
- Add support for Dynamic Sampling (#572)
Breaking changes
- Laravel Lumen is no longer supported
- Drop support for Laravel Lumen (#579)
- Laravel versions 5.0 - 5.8 are no longer supported
- Drop support for Laravel 5.x (#581)
- Remove
Sentry\Integration::extractNameForRoute()
, it's alternativeSentry\Integration::extractNameAndSourceForRoute()
is marked as@internal
(#580) - Remove internal
Sentry\Integration::currentTracingSpan()
, useSentrySdk::getCurrentHub()->getSpan()
if you were using this internal method (#592)
Other changes
- Set the tracing transaction name on the
Illuminate\Routing\Events\RouteMatched
instead of at the end of the request (#580) - Remove extracting route name or controller for transaction names (#583). This unifies the transaction names to a more concise format.
- Simplify Sentry meta tag retrieval, by adding
Sentry\Laravel\Integration::sentryMeta()
(#586) - Fix tracing with nested queue jobs (mostly when running jobs in the
sync
driver) (#592)
- Fix extracting command input resulting in errors when calling Artisan commands programatically with
null
as an argument value (#589)
- Fix not setting the correct SDK ID and version when running the
sentry:test
command (#582) - Transaction names now only show the parameterized URL (
/some/{route}
) instead of the route name or controller class (#583)
- Fix not listening to queue events because
QueueManager
is registered asqueue
in the container and not by it's class name (#568) - Fix status code not populated on transaction if response did not inherit from
Illuminate\Http\Response
likeIlluminate\Http\JsonResponse
(#573) - Align Span Operations with new spec (#574)
- Fix broken
SetRequestMiddleware
on Laravel < 6.0 (#575) - Also extract the authenticated user
email
andusername
attributes if available (#577)
- Only catch
BindingResolutionException
when trying to get the PSR-7 request object from the container
- Fix incorrect
release
andenvironment
values when using thesentry:test
command
- Add support for normalized route names when using Laravel Lumen (#449)
- Add support for adding the user ID to the user scope when using Laravel Sanctum (#542)
- Allow configuration of the
send_default_pii
SDK option with theSENTRY_SEND_DEFAULT_PII
env variable
- Fix deprecation notice in route name extraction (#543)
- Add support for Laravel 9 (#534)
- Fix double wrapping the log channel in a
FingersCrossedHandler
on Laravelv8.97
and newer whenaction_level
option is set on the Log channel config (#534) - Update span operation names to match what Sentry server is expecting (#533)
- Fix
sentry:test
command not having correct exit code on success
- Fix compatibility with Laravel <= 6 of the
sentry:test
andsentry:publish
commands
- Improve output and DX for
sentry:test
andsentry:publish
commands (#522)
- Add support for Laravel Octane (#495)
- Fix bug in Sentry log channel handler checking an undefined variable resulting in an error (#515)
- Add
action_level
configuration option for Sentry log channel which configures a MonologFingersCrossedHandler
(#516)
- Update phpdoc on facade for better IDE autocompletion (#504)
- Exceptions captured using log channels (Monolog) will now have the correct severity set (#505)
- Tags passed through log channels (Monolog) context are cast as string to prevent type errors (#507)
- Add options to the
artisan sentry:publish
command to better support--no-interaction
mode (#509)
- Replace type hint of concrete type (
Sentry\State\Hub
) with interface (Sentry\State\HubInterface
) inSentryHandler
constructor (#496) - Use latest version of the Sentry PHP SDK (#499)
- Add all log context as
log_context
to events when using the log channel (#489) - Add integration to improve performance tracing for Laravel Lighthouse (#490)
- Correctly call flush on the PHP SDK client (#484)
- Fix errors on Laravel
5.x
caused by Laravel not usingnyholm/psr7
to generate PSR-7 request but olderzendframework/zend-diactoros
package which might not be available
- Fix problem with parsing uploaded files from request after they have been moved (#487)
- Fix problem with queue tracing when triggered from unit tests or when missing a queue name in the event
- Add
sql.origin
to SQL query spans with the file and line where the SQL query originated from (#398) - Remove wrapper around the context of log entry breadcrumbs (#405)
- Ensure user integrations are always executed after SDK integrations (#474)
- Fix repeated booted callback registration from performance tracing middleware (#475)
- Add tracing support for queue jobs, enable with
SENTRY_TRACE_QUEUE_ENABLED=true
(#478) - Add options to disable parts of performance tracing (#478)
- Remove string representation of exception from exceptions logged through log channels (#482)
- Use message from Monolog record to prevent bloating the log message being recorded with timestamps and log log level (#482)
- Add
report_exceptions
option to the Sentry log channel that can be set tofalse
to not report exceptions (#482)
- Avoid collision if another package has bound
sentry
in the Laravel container (#467)
- Fix type hints incompatible with Laravel Lumen (#462)
- Read the request IP from the Laravel request to make it more accurate when behind a reverse proxy (requires trusted proxies to be setup correctly) (#419)
- Get request information (like the URL) from the Laravel request instead of constructing it from the global state (#419)
- Fix generated route name not correctly ignored when using prefix (#441)
- Fix overwriting the transaction name if it's set by the user (#442)
- Add result from optional
context(): array
method on captured exception to the event sent to Sentry (#457) - Fix not overwriting the event transaction name if it was an empty string (#460)
- Bump Sentry SDK to
3.2.*
- Fix problems when enabling tracing on Laravel Lumen (#416)
- PHP 8 Support (#431)
- Bump Sentry SDK to
3.1.*
(#420)
- Fix incorrectly stripped base controller action from transaction name (#406)
- Move tracing request/response data hydration to the tracing middleware (#408)
- Fix for potential
Undefined index: controllers_base_namespace.
notice
- Added a option (
controllers_base_namespace
) to strip away the controller base namespace for cleaner transaction names (#393) - Fix incompatibility with other packages that also decorate the view engine, like Livewire (#395)
- Improve performance tracing by nesting
view.render
spans and adding aapp.handle
span showing how long the actual application code runs after Laravel bootstrapping (#387) - Improve UX of
sentry:publish
command
Breaking Change: This version uses the envelope endpoint. If you are
using an on-premise installation it requires Sentry version >= v20.6.0
to work. If you are using
sentry.io nothing will change and no action is needed.
Tracing API / Monitor Performance
In this version we released API for Tracing. \Sentry\startTransaction
is your entry point for manual instrumentation.
More information can be found in our Performance docs.
- Using
^3.0
of Sentry PHP SDK - Add support for Tracing, enable it by setting
traces_sample_rate
in the config to a value > 0 (the value should be larger than0.0
and smaller or equal than1.0
(to send everything))
Breaking Change: This version uses the envelope endpoint. If you are
using an on-premise installation it requires Sentry version >= v20.6.0
to work. If you are using
sentry.io nothing will change and no action is needed.
- Using
3.0.0-beta1
of Sentry PHP SDK - Add support for Tracing, enable it by setting
traces_sample_rate
in the config to a value > 0 (the value should be larger than0.0
and smaller or equal than1.0
(to send everything))
- Respect the
SENTRY_ENVIRONMENT
environment variable to override the Laravel environment (#354) - Support for Laravel 8 (#374)
- Add
send_default_pii
option by default to published config file (#340) - Update
.gitattributes
to exclude more files from dist release (#341) - Ignore log breadcrumbs when
null
is the message logged (#345) - Fix
breadcrumbs.queue_info
controlling breadcrumbs generated by commands (#350) - Add
breadcrumbs.command_info
to control breadcrumbs generated by commands (#350) - Fixed scope data in queue jobs being lost in some cases (#351)
- Discard Laravel 7 route cache generated route names (#337)
- Support for Laravel 7 (#330)
- Fix for default integrations not disabled (#327)
- Fix queue events with missing handler suffix (#322)
- Use default breadcrumb type for handled events (#303)
- Support Sentry SDK ^2.3 (and drop support for older versions) (#316)
- Fix queue events to correctly flush events when not running a queue deamon (#318)
- Fix throwing errors when installed when config cache is active (6214338)
- Allow any log level to create breadcrumbs (#297)
- Allow decorating the
ClientBuilderInterface
from theregister
method of a Service Provider (#290)
- Fix default Monolog logger level being invalid when using the Log channel (#287)
- Add the query execution time to the query breadcrumb (#283)
- Do not register default error and fatal listeners to prevent duplicated events (#280)
- Fix compatibility with sentry/sentry 2.2+ (#276)
- Add compatibility with sentry/sentry 2.2+ (#273)
- Fix fatal error when user context is not an array when using log channels (#272)
- Support for Laravel 6 (#269)
- Fix custom container alias (#263)
- Register alias
HubInterface
to container (#249) - Resolve
integrations
option from the container (#239)
- Track Artisan command invocation in breadcrumb (#232)
- Fixed
sql_bindings
configuration fallback (#231) - Fixed events generated in queue worker not sending until worker exits (#228)
- Add phpDoc methods to the facade for better autocompletion (#226)
- Fallback to
SENTRY_DSN
if defined in env (#224)
- Fix the configuration syntax for the sql bindings in breadcrumbs configuration option to be compatible with Laravel (#207)
- Prevent registering events when no DSN is set (#205)
- This version requires
sentry/sentry
>= 2.0
and also PHP>= 7.1
- Support for Laravel 5.8
- Be advised
app('sentry')
now no longer returns the "old"Raven_Client
instead it will return\Sentry\State\Hub
Please see Docs for detailed usage.
- Correctly merge the user config with the default configuration file (#163)
- Listen for queue events and flush the send queue and breadcrum queue (#153)
- Add tag with the console command name to the event (#146)
- Fix support for Laravel 5.0.
- Support for Laravel 5.7.
- The
sentry:test
artisan command no longer requires the secret key in the DSN (secret key in DSN deprecated since Sentry 9).
- Allow setting custom formatter for the log channel. (#145)
This version no longer supports Laravel 4.x, version 0.8.x
will of course still work for Laravel 4.
- Set 'user_context' configuration default to false. (#132)
- Update
SENTRY_DSN
env variable name toSENTRY_LARAVEL_DSN
. (#130) - Improved default app_path for Lumen to include entire application code, excluding vendor. (#128)
- Remove Laravel 4 support. (#123)
- Add support for Laravel 5.6 log channels. (#122)
- Type hint Laravel contracts instead of implementation. (#107)
- Improved default app_path to include entire application code, excluding vendor. (#89)
- Fix for auth context not working properly on Laravel >=5.3. (#81)
- Support Laravel auto-discovery. (#78)
- Added 'sentry:test' to Artisan. (#65)
- Added 'user_context' configuration to disable automatic collection. (#55)
- Various fixes for query event breadcrumbs. (#54)
- Support for Laravel 5.4.
- Require sentry/sentry >= 1.6.0.
- Allow overriding abstract type Sentry is bound to in service container.
- Require sentry/sentry >= 1.5.0.
- Added support for Illuminate SQL queries in breadcrumbs.
- Replaced Monolog breadcrumb handler with Illuminate log handler.
- Added route transaction names.