Instalacja - Laravel
Na tej stronie Wymagania
Zanim zaczniesz, utwórz projekt w panelu DockRay. W jego ustawieniach znajdziesz token projektu - publiczny identyfikator, który wchodzi do adresu endpointu - a w zakładce Klucze API wygenerujesz klucz prywatny. Klucz jest pokazywany tylko raz, w momencie generowania: w bazie DockRay leży wyłącznie jego skrót. Jeżeli nie masz jeszcze projektu, zacznij od zakładania konta i pierwszego projektu.
Wymagania
- Laravel 10 lub nowszy,
- PHP 8.2 lub nowszy,
- Composer 2.
Instalacja paczki
composer require dockcodes/dock-ray-laravel
php artisan vendor:publish --tag=ray-config
Service provider jest wykrywany automatycznie - nie trzeba go rejestrować ręcznie. Publikacja konfiguracji tworzy config/ray.php; bez niej paczka nadal działa na wartościach domyślnych.
Poświadczenia
RAY_TOKEN=token-projektu
RAY_PRIVATE_KEY=klucz-prywatny-projektu
RAY_TRACES_SAMPLE_RATE=0.2
Bez RAY_TOKEN i RAY_PRIVATE_KEY paczka pozostaje bezczynna: żadnych żądań, żadnych błędów. Dlatego można ją wpiąć raz i nie owijać w warunek - środowisko lokalne po prostu nie dostaje poświadczeń.
Wpięcie raportowania wyjątków
Laravel 11 i 12, w bootstrap/app.php:
use Dock\Ray\Laravel\Ray;
use Illuminate\Foundation\Configuration\Exceptions;
->withExceptions(function (Exceptions $exceptions) {
$exceptions->reportable(fn (Throwable $e) => Ray::report($e));
})
Laravel 10, w app/Exceptions/Handler.php:
public function register(): void
{
$this->reportable(fn (Throwable $e) => Ray::report($e));
}
Ray::report() nigdy nie rzuca i nigdy nie przerzuca wyjątku: awaria monitoringu nie może zepsuć obsługi błędu, z której właśnie została wywołana. Zwraca też void, więc nie przerywa własnego logowania frameworka.
Pomiar czasu żądań
Pomiar wymaga dopięcia middleware do grup, które chcesz mierzyć - zwykle web i api:
->withMiddleware(function (Illuminate\Foundation\Configuration\Middleware $middleware) {
$middleware->appendToGroup('web', \Dock\Ray\Laravel\Http\Middleware\TrackTransaction::class);
})
Nic nie jest mierzone, dopóki ray.traces_sample_rate wynosi 0.
Pierwszy test
Najprościej z Tinkera - wywołanie idzie tą samą drogą co raportowanie z aplikacji:
php artisan tinker --execute="\Dock\Ray\Laravel\Ray::message('Kontrolny komunikat DockRay');"