PagerDuty Event Source
Configuring PagerDuty Webhook
-
In FireHydrant, navigate to the Signals Sources page (Signals > Sources). Here, you’ll find a webhook URL that you will use when creating a webhook in PagerDuty.
-
In PagerDuty, navigate to Integrations > Generic Webhooks (V3). Click the "New Webhook" button to create a new webhook.
-
Add the URL from step 1 to your webhook.
-
Select the events that you want to trigger Signals in FireHydrant.
-
Click “Add Webhook” to save your webhook.
-
You can learn more about PagerDuty webhooks by reading their Webhooks documentation.
Testing your PagerDuty Webhook
- After you have saved your webhook, click into the webhook (either the title of the Manage option). At the bottom of the page, click "Send Test Event."
- Confirm that FireHydrant received your webhook by visiting Alerting > Webhook Logs in the web app. You should see a new event created. You can open the drawer to see the full payload from PagerDuty.
Field Mappings/Behaviors
The payload from PagerDuty will be directly mapped to FireHydrant's Events Data Model. The following table explains the behavior once the payload hits our system:
Inbound Parameter | FireHydrant Parameter |
---|---|
event.id | idempotency_key |
event.data.title -OR- event.data.message | summary - Checks if the payload contains event.data.title , otherwise uses event.data.message . If neither exist, will be hard-coded to No summary provided . |
event.data.message | body - Uses event.data.message if exists, otherwise is empty |
event.data.html_url | links |
event.data.priority.summary event.data.urgency | annotations['priority'] annotations['urgency'] |
status | status - Closed on FireHydrant if event.data.status is "resolved", otherwise Open |
These mappings mean that an inbound webhook from PagerDuty with the following content:
{
"event": {
"id": "6NI370K25HZYH3UTP41AFF5ZFN",
"event_type": "incident.triggered",
"resource_type": "incident",
"occurred_at": "2024-01-19T02:56:50.174Z",
"data": {
"id": "Q2DGVPTAGDY34J",
"type": "incident",
"self": "https://api.pagerduty.com/incidents/6NI370K25HZYH3UTP",
"html_url":"https://sample.pagerduty.com/incidents/6NI370K25HZYH3UTP",
"number": 6328286,
"status": "triggered",
"incident_key": null,
"created_at": "2024-01-19T02:56:50Z",
"title": "Test - No action Required",
"service": {
"html_url": "https://sample.pagerduty.com/services/PYOQREP",
"id": "PYOQREP",
"self": "https://api.pagerduty.com/services/PYOQREP",
"summary": "Incident SFDC Email Notification",
"type": "service_reference"
},
"assignees": [
{
"html_url": "https://sample.pagerduty.com/users/Y5ML0GA",
"id": "Y5ML0GA",
"self": "https://api.pagerduty.com/users/Y5ML0GA",
"summary": "Random User",
"type": "user_reference"
}
],
"escalation_policy": {
"html_url": "https://sample.pagerduty.com/escalation_policies/OP56E0H",
"id": "OP56E0H",
"self": "https://api.pagerduty.com/escalation_policies/OP56E0H",
"summary": "Incident SFDC Email Notification-ep",
"type": "escalation_policy_reference"
},
"teams": [
{
"html_url": "https://sample.pagerduty.com/teams/BY0RZ1A",
"id": "BY0RZ1A",
"self": "https://api.pagerduty.com/teams/BY0RZ1A",
"summary": "GCS Incident Management Team",
"type": "team_reference"
}
],
"priority": {
"html_url": "https://sample.pagerduty.com/account/incident_priorities",
"id": "PSO75BM",
"self": "https://api.pagerduty.com/priorities/PSO75BM",
"summary": "P1",
"type": "priority_reference"
},
"urgency": "high",
"conference_bridge": null,
"resolve_reason": null
}
}
}
Will be transposed to the following FireHydrant Signal:
{
"summary": "Test - No action Required",
"body": "",
"status": "OPEN",
"links": [
{
"href": "https://sample.pagerduty.com/incidents/6NI370K25HZYH3UTP",
"text": "PagerDuty Incident"
}
],
"annotations": {
"priority": "P1",
"urgency": "high"
},
"idempotency_key": "6NI370K25HZYH3UTP41AFF5ZFN"
}
Updated 14 days ago