PHP و لاراول
لاراول
composer require sentry/sentry-laravel
php artisan sentry:publish --dsn=https://<public_key>@<your-errora-host>/<project_id>
دستور sentry:publish فایل config/sentry.php را میسازد و DSN را به .env اضافه میکند:
SENTRY_LARAVEL_DSN=https://<public_key>@<your-errora-host>/<project_id>
SENTRY_TRACES_SAMPLE_RATE=0.2
SENTRY_PROFILES_SAMPLE_RATE=1.0
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=myapp@1.4.2
گزارش استثناها
لاراول ۱۱ به بعد (bootstrap/app.php):
->withExceptions(function (Illuminate\Foundation\Configuration\Exceptions $exceptions) {
Sentry\Laravel\Integration::handles($exceptions);
})
لاراول ۱۰ و پیش از آن: در متد register() فایل app/Exceptions/Handler.php تابع
Integration::captureUnhandledException($e) را صدا بزنید.
ردیابی کارایی
فقط SENTRY_TRACES_SAMPLE_RATE کافی است تا درخواستها، کوئریها، جابهای صف، کش، فراخوانیهای
HTTP و رندر ویو ابزارگذاری شوند. برای تراکنش کامل درخواست، میانافزار را هم اضافه کنید:
// bootstrap/app.php
->withMiddleware(function (Middleware $middleware) {
$middleware->append(\Sentry\Laravel\Tracing\Middleware::class);
})
لاگ
// config/logging.php
'channels' => [
'sentry' => [
'driver' => 'sentry',
'level' => env('LOG_LEVEL', 'info'),
'bubble' => true,
],
'stack' => ['driver' => 'stack', 'channels' => ['single', 'sentry']],
],
بعد از آن Log::warning('payment retried', ['order_id' => $order->id]); با همان زمینه در
لاگها دیده میشود.
دستورهای زمانبندیشده (مانیتور کران)
$schedule->command('invoices:generate')
->dailyAt('03:00')
->sentryMonitor('nightly-invoices');
چکاینها روی همان اسلاگ مانیتور مینشینند — نگاه کنید به مانیتورینگ کران.
اطلاعات کاربر
\Sentry\configureScope(function (\Sentry\State\Scope $scope) {
$scope->setUser(['id' => auth()->id(), 'username' => auth()->user()?->name]);
});
PHP ساده
composer require sentry/sdk
\Sentry\init([
'dsn' => getenv('SENTRY_DSN'),
'environment' => 'production',
'release' => 'myapp@1.4.2',
'traces_sample_rate' => 0.2,
'send_default_pii' => false,
]);
try {
riskyThing();
} catch (\Throwable $e) {
\Sentry\captureException($e);
}
Symfony
composer require sentry/sentry-symfony
# config/packages/sentry.yaml
sentry:
dsn: '%env(SENTRY_DSN)%'
options:
traces_sample_rate: 0.2
environment: '%kernel.environment%'
بررسی نهایی
php artisan sentry:test
این دستور یک استثنای آزمایشی از مسیر DSN تنظیمشده میفرستد و نتیجه را چاپ میکند. سپس صفحهٔ خطاها را ببینید.