, (*1)
This package makes it easy to send notification events to PagerDuty with Laravel 11.x+, (*2)
Contents
Installation
You can install the package via composer:, (*3)
composer require laravel-notification-channels/pagerduty
Usage
Now you can use the channel in your via()
method inside the Notification class., (*4)
use NotificationChannels\PagerDuty\PagerDutyChannel;
use NotificationChannels\PagerDuty\PagerDutyMessage;
use Illuminate\Notifications\Notification;
class SiteProblem extends Notification
{
public function via($notifiable)
{
return [PagerDutyChannel::class];
}
public function toPagerDuty($notifiable)
{
return PagerDutyMessage::create()
->setSummary('There was an error with your site in the {$notifiable->service} component.');
}
}
In order to let your Notification know which Integration should receive the event, add the routeNotificationForPagerDuty
method to your Notifiable model., (*5)
This method needs to return the Integration Key for the service and integration to which you want to send the event., (*6)
public function routeNotificationForPagerDuty()
{
return '99dc10c97a6e43c387bbc4f877c794ef';
}
On a PagerDuty Service of your choice, create a new Integration using the Events API v2
., (*7)
, (*8)
The Integration Key
listed for your new integration is what you need to set in the routeNotificationForPagerDuty()
method., (*9)
, (*10)
Available Message methods
-
resolve()
: Sets the event type to resolve
to resolve issues.
-
setDedupKey('')
: Sets the dedup_key
(required when resolving).
-
setSummary('')
: Sets a summary message on the event.
-
setSource('')
: Sets the event source; defaults to the hostname
.
-
setSeverity('')
: Sets the event severity; defaults to critical
.
-
setTimestamp('')
: Sets the timestamp
of the event.
-
setComponent('')
: Sets the component
of the event.
-
setGroup('')
: Sets the group
of the event.
-
setClass('')
: Sets the class
.
-
addCustomDetail('', '')
: Adds a key/value pair to the custom_detail
of the event.
See the PagerDuty v2 Events API documentation
for more information about what these options will do., (*11)
Usage
Notification::route('PagerDuty', '[my integration key]')->notify(new BasicNotification);
When using Notification::route
be sure to reference 'PagerDuty' as the Channel., (*12)
Changelog
Please see CHANGELOG for more information what has changed recently., (*13)
Testing
bash
$ composer test
, (*14)
Security
If you discover any security related issues, please email lwaite@gmail.com instead of using the issue tracker., (*15)
Contributing
Please see CONTRIBUTING for details., (*16)
Credits
License
The MIT License (MIT). Please see License File for more information., (*17)