Інтеграція Laravel

Надсилайте Laravel-виключення і failed jobs в ескалацію чергового

Використовуйте стандартний Notification channel або Monolog handler, щоб ескалувати production-виключення, failed jobs і власні бізнес-події у дзвінки і Telegram.

Патерн
Notification
Альтернатива
Monolog
Auth
API key

Анатомія Laravel alert

LIVE
Laravel → notify
App\Notifications\CheckoutDown
WardenPoint
маршрут через API key · ескалація · підтвердження
Telegram
Voice call
Email

Налаштування

Два патерни, один контракт

Для виключень — Monolog handler. Для бізнес-подій — клас Notification. Обидва POST-ять той самий JSON на /api/v1/notifications/send.

  1. 1Крок 1

    Додайте API-ключ

    Покладіть WardenPoint-ключ у services.php під wardenpoint.key, джерело з env(), щоб не потрапив у git.

    $ config/services.php › 'wardenpoint' => ['key' => env('WARDENPOINT_API_KEY')]
  2. 2Крок 2

    Напишіть клас Notification

    Створіть Notification з via() що повертає ['wardenpoint'] і методом toWardenpoint(), що повертає вміст сповіщення.

    $ php artisan make:notification CheckoutDown
  3. 3Крок 3

    Відправлення через $user->notify()

    Передайте UUID одержувача через notifiable-модель, потім $user->notify(new CheckoutDown(...)). WardenPoint приймає звідси.

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

Формат у мережі

Клас Laravel Notification — повний приклад

Саме це ми використовуємо у власних сервісах. Те, що повертає toWardenpoint(), стає body POST на /api/v1/notifications/send.

Клас 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',
];
}
}
Розсилка WardenPoint
WardenPoint response202
{
"status": "queued",
"notification_uuid": "notif_8h2k7yQrxJp",
"channels_planned": [
"telegram_voice",
"voice_call",
"email"
],
"escalation_chain_id": "esc_4j2k9bMcvL"
}

Маршрутизація-рецепти

Три Laravel-патерни, які ми самі використовуємо

Production-виключення, failed jobs, бізнес-події — кожне отримує тонкий клас Notification і групу одержувачів.

Exceptions

Production-виключення через Monolog

Зареєструйте Monolog handler у production-логгінг-каналі. POST-ить у WardenPoint лише коли log level досягає critical або вище.

match
log.level >= critical
→ route
політика: prod_exception
Jobs

Failed jobs

Слухайте події JobFailed. Надсилайте Notification з класом job і повідомленням виключення. Оператори тріажують з каналу чергового.

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

Бізнес-критичні події

Створіть Notification для кожної бізнес-події (перебої платіжної системи, сплеск шахрайства). Кожне прив'язуйте до окремої групи одержувачів.

match
event: PaymentProcessorDown
→ route
group: payments_oncall

FAQ Laravel

Часті питання про інтеграцію Laravel

Ні. WardenPoint — невелике HTTP API. Використовуйте HTTP-клієнт Laravel (Http::withHeaders()) і клас Notification — без SDK для оновлення.
Безкоштовний план

Підключіть перший Laravel-alert сьогодні

Почніть на безкоштовному плані, додайте клас Notification для однієї критичної події, відправлення і подивіться, як рендериться ланцюг ескалації.

  • Без SDK
  • Standard Notification API
  • Octane-friendly