The official PHP SDK for Sentry (sentry.io)
MIT License
Bot releases are visible (Hide)
Published by getsentry-bot over 1 year ago
Published by getsentry-bot over 1 year ago
The Sentry SDK team is happy to announce the immediate availability of Sentry PHP SDK v3.17.0.
Add ignore_exceptions
& ignore_transactions
options (#1503)
We deprecated the IgnoreErrorsIntegration in favor of this new option.
The option will also take previous exceptions into account.
\Sentry\init([
'ignore_exceptions' => [BadThingsHappenedException::class],
]);
To ignore a transaction being sent to Sentry, add its name to the config option.
You can find the transaction name on the Performance page.
\Sentry\init([
'ignore_transactions' => ['GET /health'],
]);
Bump php-http/discovery
to ^1.15
(#1504)
You may need to allow the added composer plugin, introduced in php-http/discovery v1.15.0
, to execute when running composer update
.
We previously pinned this package to version <1.15
.
Due to conflicts with other packages, we decided to lift this restriction.
Published by getsentry-bot over 1 year ago
The Sentry SDK team is happy to announce the immediate availability of Sentry PHP SDK v3.16.0.
This release adds initial support for Cron Monitoring.
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 (#1467)
You can use Cron Monitoring to monitor your cron jobs. No pun intended.
Add the code below to your application or script that is invoked by your cron job.
The first Check-In will let Sentry know that your job started, with the second Check-In reporting the outcome.
<?php
$checkIn = new CheckIn(
monitorSlug: '<your-monitor-slug>',
status: CheckInStatus::inProgress(),
);
$event = Event::createCheckIn();
$event->setCheckIn($checkIn);
$this->hub->captureEvent($event);
try {
// do stuff
$checkIn->setStatus(CheckInStatus::ok());
} catch (Throwable $e) {
$checkIn->setStatus(CheckInStatus::error());
}
$event = Event::createCheckIn();
$event->setCheckIn($checkIn);
$this->hub->captureEvent($event);
If you only want to check if a cron did run, you may create a "Heartbeat" instead.
Add the code below to your application or script that is invoked by your cron job.
<?php
// do stuff
$checkIn = new CheckIn(
monitorSlug: '<your-monitor-slug>',
status: CheckInStatus::ok(), // or - CheckInStatus::error()
duration: 10, // optional - duration in seconds
);
$event = Event::createCheckIn();
$event->setCheckIn($checkIn);
$this->hub->captureEvent($event);
Introduce a new trace
helper function (#1490)
We made it a tad easier to add custom tracing spans to your application.
$spanContext = new SpanContext();
$spanContext->setOp('function');
$spanContext->setDescription('Soemthing to be traced');
trace(
function (Scope $scope) {
// something to be traced
},
$spanContext,
);
Published by getsentry-bot over 1 year ago
The Sentry SDK team is happy to announce the immediate availability of Sentry PHP SDK v3.15.0.
This release adds initial support for Profiling.
Warning
Profiling 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 (#profiling), or open an issue.
Profiling is only available on Sentry SaaS (sentry.io). Support for Sentry self-hosted is planned once Profiling is released into GA.
Add initial support for profiling (#1477)
Under the hood, we're using Wikipedia's sampling profiler Excimer.
We chose this profiler for its low overhead and for being used in production by one of the largest PHP-powered websites in the world.
Excimer works with PHP 7.2 and up, for PHP 8.2 support, make sure to use Excimer version 1.1.0.
There is currently no support for either Windows or macOS.
You can install Excimer via your operating systems package manager.
apt-get install php-excimer
If no suitable version is available, you may build Excimer from source.
git clone https://github.com/wikimedia/mediawiki-php-excimer.git
cd excimer/
phpize && ./configure && make && sudo make install
Depending on your environment, you may need to enable the Excimer extension afterward.
phpenmod -s fpm excimer
# or
phpenmod -s apache2 excimer
Once the extension is installed, you may enable profiling by adding the new profiles_sample_rate
config option to your Sentry::init
method.
\Sentry\init([
'dsn' => '__DSN__',
'traces_sample_rate' => 1.0,
'profiles_sample_rate' => 1.0,
]);
Profiles are being sampled in relation to your traces_sample_rate
.
Please note that the profiler is started inside transactions only. If you're not using our Laravel or Symfony SDKs, you may need to manually add transactions to your application as described here.
Published by getsentry-bot over 1 year ago
The Sentry SDK team is happy to announce the immediate availability of Sentry PHP SDK v3.14.0.
enable_tracing: true/false
option, an alternative for traces_sample_rate: 1.0/null
(#1458)
Published by getsentry-bot over 1 year ago
Published by getsentry-bot over 1 year ago
The Sentry SDK team is happy to announce the immediate availability of Sentry PHP SDK v3.13.0.
Object IDs are now automatically serialized as part of a stack trace frame (#1443)
Obj::getID()
or Obj->id
is accessible, this value will be displayed inside the stack trace frame on the issue details page.zend.exception_ignore_arg: 0
is set in your php.ini
.Add more functionality to the ExceptionMechanism::class
(#1450)
$hint = EventHint::fromArray([
'exception' => $exception,
'mechanism' => new ExceptionMechanism(
ExceptionMechanism::TYPE_GENERIC,
false,
[
'key' => 'value',
//...
],
),
]);
captureEvent(Event::createEvent(), $hint);
Learn more about the interface of the ExceptionMechanism
on https://develop.sentry.dev/sdk/event-payloads/exception/#exception-mechanism
ExceptionMechanism::data
via ExceptionMechanism::getData()
and ExceptionMechanism::setData()
code
, the value will be serialized into the event and displayed on the issues details page.
throw new \Exception('Oh no!', 123);
Published by getsentry-bot almost 2 years ago
null
on getTracesSampleRate
and setTracesSampleRate
in Options
class (#1441)Published by getsentry-bot almost 2 years ago
before_send_transaction
option (#1424)traces_sample_rate
to null
by default (#1428)Published by getsentry-bot almost 2 years ago
Published by getsentry-bot almost 2 years ago
never
option for max_request_body_size
(#1397)
max_request_body_size.none
in favour of max_request_body_size.never
false
when tracing is disabled (#1407)Published by getsentry-bot about 2 years ago
Published by getsentry-bot about 2 years ago
segment
to UserDataBag
TransactionSource
, to set information about the transaction name via TransactionContext::setSource()
(#1382)TransactionContext::fromSentryTrace()
in favor of TransactionContext::fromHeaders()
Published by getsentry-bot about 2 years ago
Published by getsentry-bot about 2 years ago
Sentry\Monolog\BreadcrumbHandler
, a Monolog handler to allow registration of logs as breadcrumbs (#1199)ExceptionDataBag
(#1347)Published by getsentry-bot over 2 years ago
Scope::getTransaction()
so that it returns also unsampled transactions (#1334)Published by getsentry-bot over 2 years ago
sentry-trace
header when using the tracing middleware (#1331)Published by getsentry-bot over 2 years ago
monolog/monolog:^3.0
(#1321)setTag
and removeTag
public methods to Event
for easier manipulation of tags (#1324)Published by getsentry-bot over 2 years ago
guzzlehttp/psr7
package to avoid CVE-2022-24775
(#1305)>=7.4.2
(#1314)send_attempts
to 0
(this disables retries) and deprecate the option. If you require retries you can increase the send_attempts
option to the desired value. (#1312)http_connect_timeout
and http_timeout
client options (#1282)Published by getsentry-bot over 2 years ago
toArray
public method in PayloadSerializer
to be able to re-use Event serializationwithScope
methods now return the callback's return value (#1263)StacktraceBuilder
class part of the public API and add the Client::getStacktraceBuilder()
method to build custom stacktraces (#1124)string
rather than an integer
(#1294)