Integracja Laravel

Wysyłaj wyjątki Laravel i failed jobs na eskalację dyżuru

Użyj standardowego kanału Notification lub handlera Monolog, żeby eskalować produkcyjne wyjątki, failed jobs i własne incydenty biznesowe na połączenia i Telegram.

Pattern
Notification
Alternatywa
Monolog
Auth
API key

Anatomia alertu Laravel

LIVE
Laravel → notify
App\Notifications\CheckoutDown
WardenPoint
routuj przez API key · eskaluj · potwierdzenie
Telegram
Voice call
Email

Konfiguracja

Dwa patterny, jeden kontrakt

Dla wyjątków — handler Monolog. Dla zdarzeń biznesowych — klasa Notification. Oba POSTują ten sam JSON na /api/v1/notifications/send.

  1. 1Krok 1

    Dodaj klucz API

    Wklej klucz WardenPoint do services.php pod wardenpoint.key, źródłuj z env(), żeby nie wyszedł w gicie.

    $ config/services.php › 'wardenpoint' => ['key' => env('WARDENPOINT_API_KEY')]
  2. 2Krok 2

    Napisz klasę Notification

    Utwórz Notification z via() zwracającym ['wardenpoint'] i metodą toWardenpoint() zwracającą treść alertu.

    $ php artisan make:notification CheckoutDown
  3. 3Krok 3

    Wysyłanie z $user->notify()

    Przekaż UUID odbiorcy przez model notifiable, a następnie $user->notify(new CheckoutDown(...)). Dalej WardenPoint przejmuje.

    $ $user->notify(new CheckoutDown($context))

Format na drucie

Klasa Notification Laravel — pełny przykład

Właśnie tego używamy w naszych własnych usługach. Wartość zwracana przez metodę toWardenpoint() staje się treścią żądania POST wysyłanego na adres /api/v1/notifications/send.

Klasa Notification
CheckoutDown.phpPHP
use Illuminate\Support\Facades\Notification;
 
class CheckoutDown extends Notification
{
public function via($notifiable): array
{
return ['wardenpoint'];
}
 
public function toWardenpoint($notifiable): array
{
return [
'recipient_uuid' => $notifiable->oncall_uuid,
'message' => 'Checkout latency above SLO for 5 minutes',
'priority' => 'critical',
'source' => 'laravel',
];
}
}
Rozsyłka WardenPoint
WardenPoint response202
{
"status": "queued",
"notification_uuid": "notif_8h2k7yQrxJp",
"channels_planned": [
"telegram_voice",
"voice_call",
"email"
],
"escalation_chain_id": "esc_4j2k9bMcvL"
}

Wzorce routingu

Trzy patterny Laravel, których sami używamy

Wyjątki produkcyjne, failed jobs, zdarzenia biznesowe — każdy dostaje cienką klasę Notification i grupę odbiorców.

Exceptions

Wyjątki produkcyjne przez Monolog

Zarejestruj handler Monolog w kanale loggingu produkcyjnego. POSTuje do WardenPoint tylko gdy log level osiąga critical lub wyżej.

match
log.level >= critical
→ route
polityka: prod_exception
Jobs

Failed jobs

Słuchaj zdarzeń JobFailed. Wysyłaj Notification z klasą joba i wiadomością wyjątku. Operatorzy robią triage z kanału dyżurnego.

match
Queue::failing(...)
→ route
group: queue_oncall
Business

Krytyczne zdarzenia biznesowe

Utwórz Notification dla każdego zdarzenia biznesowego (awaria systemu płatności, wzrost liczby oszustw). Każde z nich kieruj do innej grupy odbiorców.

match
event: PaymentProcessorDown
→ route
group: payments_oncall

FAQ Laravel

Najczęstsze pytania o integrację Laravel

Nie. WardenPoint to małe HTTP API. Użyj HTTP client Laravela (Http::withHeaders()) i klasy Notification — nie ma SDK do aktualizowania.
Plan darmowy

Podłącz pierwszy alert Laravel dzisiaj

Zacznij na darmowym planie, dodaj klasę Notification dla jednego krytycznego zdarzenia, dispatchuj i obserwuj jak renderuje się łańcuch eskalacji.

  • Bez SDK do utrzymania
  • Standard Notification API
  • Octane-friendly