PHP Error Monitoring

Actionable insights to resolve PHP performance bottlenecks and errors. See the full picture of any PHP exception with a clear workflow to create an efficient PHP debugging process.

Getting Started is Simple

Install the sentry/sentry package with Composer:

Bash
composer require sentry/sentry

To capture all errors, even the one during the startup of your application, you should initialize the Sentry PHP SDK as soon as possible.

PHP
\Sentry\init(['dsn' => 'https://<key>@sentry.io/<project>',
    // Specify a fixed sample rate:
    'traces_sample_rate' => 0.2,
    // Or provide a custom sampler:
    'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
        // return a number between 0 and 1
    }, ]);

Install the sentry/sentry-laravel package with Composer:

Bash
composer require sentry/sentry-laravel

Add Sentry reporting to bootstrap/app.php:

PHP
<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Sentry\Laravel\Integration;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->withMiddleware(function (Middleware $middleware) { /* ... */ })
    ->withExceptions(function (Exceptions $exceptions) {
        Integration::handles($exceptions);
    })->create();

Enable Sentry Tracing in config/sentry.php:

PHP
'traces_sample_rate' => 0.2,
// Or provide a custom sampler:
'traces_sampler' => function (\Sentry\Tracing\SamplingContext $context): float {
    // return a number between 0 and 1
},

Run this Artisan command to configure the Sentry DSN:

Bash
php artisan sentry:publish --dsn=<paste-your-DSN-here>

Install the sentry/sentry-symfony bundle with Composer:

Bash
composer require sentry/sentry-symfony

Add your DSN to .env:

Env
###> sentry/sentry-symfony ###
SENTRY_DSN="<paste-your-DSN-here>"
###< sentry/sentry-symfony ###

More than 150K Organizations Trust Sentry with Their Application Monitoring

PHP Performance Monitoring

Quickly identify PHP performance issues and view full end-to-end distributed trace to see the exact, poor-performing API call and surface any related errors. Get the real-time data and detailed reporting you need to solve performance issues early.

Complete Stack Traces, With Function Arguments

See local variables in the stack for prod errors, just like in your dev environment. Explore the full source code context with frame to function data. Filter and group PHP exceptions intuitively to eliminate noise.

Fill In the Blanks

Expose the important events that led to each PHP exception: warnings, past errors, custom breadcrumbs. Get a full view of releases so you can mark errors as resolved and prioritize live issues.
Sentry Logs showing structured log output alongside errors and traces

Your Logs, Next to the Error

Send structured logs from your PHP application to Sentry and query them next to the traces and errors they belong to. Monolog output becomes searchable context on the request that failed, instead of a file you have to SSH in to read.

Learn more about Logs in Sentry.

Explore Logs

"As we ship code, which we do at least daily, I'm constantly staring at Sentry."

Mike Clarke
Engineer at Disqus
Disqus

See the Full Picture of Any Exception

Aggregate errors by factors like request details, user ID, and app versions to see what's new, a priority or a trend.

Assign custom key-value tags to reproduce the error environment specific to your application, business, and users.

Answer the most important questions: How actionable is the error? Can I snooze the alert?

FAQs

Traditional logging provides you with a trail of events. Some of those events are errors, but many times they're simply informational. Sentry is fundamentally different because we focus on exceptions, or in other words, we capture application crashes. We discuss in more detail here and on our blog.

Sentry supports every major language, framework, and library. You can browse each of them here.

You can get started for free. Pricing depends on the number of monthly events, transactions, and attachments that you send Sentry. For more details, visit our pricing page.

Sentry doesn't impact a web site's performance.

If you look at the configuration options for when you initialize Sentry in your code, you'll see there's nothing regarding minimizing its impact on your app's performance. This is because our team of SDK engineers already developed Sentry with this in mind.

Sentry is a listener/handler for errors that asynchronously sends out the error/event to Sentry.io. This is non-blocking. The error/event only goes out if this is an error.

Global handlers have almost no impact as well, as they are native APIs provided by the browsers.

The Sentry PHP SDK supports PHP 7.2 and later, and installs with Composer. There are dedicated guides for Laravel and Symfony on top of the base SDK.

PHP profiling is powered by the Excimer extension, which also supports PHP 7.2 and up on Linux and macOS. To capture function arguments in your stack traces, set zend.exception_ignore_args to Off.

Yes. Sentry's PHP profiling uses the Excimer extension (installed via PECL, on Linux and macOS) to collect function-level performance data from real production traffic — no custom instrumentation needed.

Profiles are linked to the traces they came from, so you can go from a slow endpoint straight to the specific function burning the time. Learn more about Profiling.

Yes. Sentry Logs lets you send, view, and query structured logs from your application alongside your errors and traces. Because logs sit next to the error and the trace that produced them, you get the granular context — retries, API failures, internal state — that spans and stack traces alone can miss, without switching tools.

Learn more about Logs in Sentry.

Seer is Sentry's AI debugging agent. It reads the full context Sentry already has — the error, its stack trace, the surrounding trace, logs, and profiles — to find the root cause of an issue and propose a fix. Seer can open a pull request with that fix, hand the work to an external coding agent, or review your PRs before they ship.

Learn more about Seer and Autofix.

Resolve PHP errors with max efficiency, not max effort