The official Symfony SDK for Sentry (sentry.io)
The Sentry SDK team is thrilled to announce the immediate availability of Sentry Symfony SDK v5.0.0.
Please refer to the UPGRADE-5.0.md guide for a complete list of breaking changes.
This version adds support for the underlying Sentry PHP SDK v4.0. Please refer to the PHP SDK sentry-php/UPGRADE-4.0.md guide for a complete list of breaking changes.
This version exclusively uses the envelope endpoint to send event data to Sentry.
If you are using sentry.io, no action is needed.
If you are using an on-premise/self-hosted installation of Sentry, the minimum requirement is now version >= v20.6.0
.
You need to have ext-curl
installed to use the SDK.
The IgnoreErrorsIntegration
integration was removed. Use the ignore_exceptions
option instead.
Previously, both Symfony\Component\ErrorHandler\Error\FatalError
and Symfony\Component\Debug\Exception\FatalErrorException
were ignored by default.
To continue ignoring these exceptions, make the following changes to the config file:
// config/packages/sentry.yaml
sentry:
options:
ignore_exceptions:
- 'Symfony\Component\ErrorHandler\Error\FatalError'
- 'Symfony\Component\Debug\Exception\FatalErrorException'
This option performs an is_a
check now, so you can also ignore more generic exceptions.
Add support for Sentry Developer Metrics (#1619)
use function Sentry\metrics;
// Add 4 to a counter named hits
metrics()->increment(key: 'hits', value: 4);
// Add 25 to a distribution named response_time with unit milliseconds
metrics()->distribution(key: 'response_time', value: 25, unit: MetricsUnit::millisecond());
// Add 2 to gauge named parallel_requests, tagged with type: "a"
metrics()->gauge(key: 'parallel_requests', value: 2, tags: ['type': 'a']);
// Add a user's email to a set named users.sessions, tagged with role: "admin"
metrics()->set('users.sessions', '[email protected]', null, ['role' => User::admin()]);
Metrics are automatically sent to Sentry at the end of a request, hooking into Symfony's kernel.terminate
event.
Add new fluent APIs (#1601)
// Before
$transactionContext = new TransactionContext();
$transactionContext->setName('GET /example');
$transactionContext->setOp('http.server');
// After
$transactionContext = (new TransactionContext())
->setName('GET /example');
->setOp('http.server');
Simplify the breadcrumb API (#1603)
// Before
\Sentry\addBreadcrumb(
new \Sentry\Breadcrumb(
\Sentry\Breadcrumb::LEVEL_INFO,
\Sentry\Breadcrumb::TYPE_DEFAULT,
'auth', // category
'User authenticated', // message (optional)
['user_id' => $userId] // data (optional)
)
);
// After
\Sentry\addBreadcrumb(
category: 'auth',
message: 'User authenticated', // optional
metadata: ['user_id' => $userId], // optional
level: Breadcrumb::LEVEL_INFO, // set by default
type: Breadcrumb::TYPE_DEFAULT, // set by default
);
New default cURL HTTP client (#1589)
The SDK now ships with its own HTTP client based on cURL. A few new options were added.
// config/packages/sentry.yaml
sentry:
options:
- http_proxy_authentication: 'username:password' // user name and password to use for proxy authentication
- http_ssl_verify_peer: false // default true, verify the peer's SSL certificate
- http_compression: false // default true, http request body compression
To use a different client, you may use the http_client
option.
To use a different transport, you may use the transport
option. A custom transport must implement the TransportInterface
.
If you use the transport
option, the http_client
option has no effect.
php-http/message-factory
was removed.The Sentry SDK team is happy to announce the immediate availability of Sentry Symfony SDK v4.13.2.
symfony/http-client
(#797)
The Sentry SDK team is happy to announce the immediate availability of Sentry Symfony SDK v4.13.1.
http_client
service is registered (#792)
The Sentry SDK team is happy to announce the immediate availability of Sentry Symfony SDK v4.10.0.
Tracing without Performance (#742)
The SDK will now continue a trace from incoming HTTP requests, even if performance is not enabled. To continue a trace outward, you may attach the Sentry tracing headers to any HTTP client request. You can fetch the required header values by calling \Sentry\getBaggage() and \Sentry\getTraceparent().
Add ignore_exceptions
and ignore_transactions
options (#724)
The Sentry SDK team is happy to announce the immediate availability of Sentry Symfony SDK v4.9.2.
We decided to revert two previous PRs that aimed to remove deprecation warnings during test runs (#736)
We are sorry for the inconvenience caused by these changes.
The Sentry SDK team is happy to announce the immediate availability of Sentry Symfony SDK v4.9.1.
TracingDriverForV32
by adding VersionAwarePlatformDriver::createDatabasePlatformForVersion
(#731)