Налаштування Error Tracking (Bugsnag) для вашого веб-застосунку
Bugsnag — це комерційна альтернатива Sentry з акцентом на стабільність релізів. Ключова метрика — Stability Score: відсоток сесій без помилок. Зручніше ніж сирі лічильники помилок коли потрібно вирішити чи готов релиз до розкатки.
Безплатний план: 7500 помилок/місяць на 1 проект.
Встановлення PHP / Laravel
composer require bugsnag/bugsnag-laravel
php artisan bugsnag:install your-api-key-here
У .env:
BUGSNAG_API_KEY=your_32_char_api_key
BUGSNAG_APP_VERSION=1.0.0
BUGSNAG_RELEASE_STAGE=production
config/bugsnag.php після публікації:
return [
'api_key' => env('BUGSNAG_API_KEY'),
'app_version' => env('BUGSNAG_APP_VERSION'),
'release_stage' => env('BUGSNAG_RELEASE_STAGE', 'production'),
'notify_release_stages' => ['production', 'staging'],
'filters' => ['password', 'token', 'secret', 'api_key'],
'notify_endpoint' => 'https://notify.bugsnag.com',
'sessions_endpoint' => 'https://sessions.bugsnag.com',
'auto_capture_sessions' => true,
];
Service Provider реєструється автоматично. У app/Exceptions/Handler.php для Laravel 9-10:
use Bugsnag\BugsnagLaravel\Facades\Bugsnag;
public function register(): void
{
$this->reportable(function (Throwable $e) {
Bugsnag::notifyException($e);
});
}
Контекст та метадані
use Bugsnag\BugsnagLaravel\Facades\Bugsnag;
// Встановити користувача (автоматично якщо auth налаштований)
Bugsnag::setUser([
'id' => $user->id,
'name' => $user->name,
'email' => $user->email,
]);
// Додати користувацькі вкладки до звіту
Bugsnag::registerCallback(function ($report) {
$report->setMetaData([
'subscription' => [
'plan' => auth()->user()?->plan,
'trial_ends' => auth()->user()?->trial_ends_at,
],
]);
});
// Ручна отправка з додатковими даними
Bugsnag::notifyException(
new \RuntimeException('Stripe webhook failed'),
function ($report) use ($payload) {
$report->setSeverity('warning');
$report->setMetaData(['webhook' => ['event' => $payload['type']]]);
}
);
JavaScript / React
npm install @bugsnag/js @bugsnag/plugin-react
// src/bugsnag.ts
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
import React from 'react';
Bugsnag.start({
apiKey: import.meta.env.VITE_BUGSNAG_API_KEY,
plugins: [new BugsnagPluginReact()],
releaseStage: import.meta.env.MODE,
});
export const ErrorBoundary = Bugsnag.getPlugin('react')
?.createErrorBoundary(React);
Дашборд дає швидкий вигляд тенденцій стабільності по релізам.
Розклад
Базове налаштування для backend та frontend: 1-2 години. Повна інтеграція з release tracking та користувацьким reporting: 3-4 години.







