Creating, Editing, and Deleting Services and Integrations

Create a Generic Events API Integration

If there is not an out-of-the-box integration for your tool, you can create an Events API integration for as long as your system can make outbound HTTP calls.

To add a generic integration:

  1. Go to Configuration → Services.
  2. If you are creating a new service for your integration, click Add New Service. If you are adding your integration to an existing service, click the name of the service you want to add the integration to, go to the Integrations tab, then click New Integration.
  3. Select Use our API Directly from the Integration Type menu, select whether you would like to use Events API v1 or v2, and and enter an Integration Name. If you are creating a new service for your integration, under General Settings, enter a Name for your new service. Under Incident Settings, select an Escalation Policy, Notification Urgency, and Incident Behavior.
  4. Click Add Service/Integration and an integration key will be generated. You'll find this key on the Integrations tab. Use this key in your monitoring tool to send events to PagerDuty, which create incidents on your service.

Events API v2

Events APIs allows monitoring tools to directly send events in the PD-CEF format. If you are using custom monitoring you can also leverage this format to take advantage of PD-CEF's display and workflow features.

You'll be prompted to choose Events API v1 or v2 when you select Use our API directly from the Integration Type menu.

You must have Create alerts and incidents enabled to use Events API v2. This setting is under Incident Behavior at the bottom of your service configuration screen. When an Events API v2 integration type is selected the Create incidents option will be grayed out.

Should I use API v1 or v2?

Events API v2 is designed to handle machine-generated monitoring and event data, such as infrastructure monitoring (Nagios, SignalFX, Datadog), application performance monitoring (New Relic, AppDynamics), and external site checks (Pingdom, Wormly). PD-CEF events generate alerts in PagerDuty, which can then be grouped together under PagerDuty incidents.

For human-generated events, tickets, or incidents, such as those from ServiceNow or JIRA, we suggest using the Events API v2, which enables direct, streamlined creation of PagerDuty incidents.

If you are using a custom monitoring tool, library, or script that has not yet been updated to v2, you should use Events API v1.

Configuring Services and Integrations

A service may represent an application, component, or team you wish to open incidents against.

If a tool cannot integrate via the API, you can use an email integration to integrate with any monitoring tool that can send emails (even in-house solutions).

Create a new service

You can access all services by going to Configurations → Services. If you are creating a new service, click Add New Service. Otherwise, you can skip to adding integrations to an existing service.

Give your service a name. Then select your app from the Integration Type menu and enter an integration name.

There are 4 integration types:

  1. Select a Tool. Check to see if we have an existing integration for your service. Search for your service by clicking on the dropdown menu next to Integration Type.
  2. Integrate via Email. If your service can send email, you can create an integration email address.
  3. Use our API directly. If your service is able to make HTTP calls, you can trigger, acknowledge, and resolve incidents via our API. Our developer documentation provides several examples.
    1. Don't use an integration. Choose this option if you only wish to manually created incidents.

You can customize your service to include other attributes such as urgency, acknowledgment timeouts, auto-resolution, or alerts.

Add integrations to an existing service

You can add more than one integration on a service. This enables you to represent the actual entities you are monitoring, managing, and operating as services in PagerDuty. Entities can be applications, micro-services in an application’s architecture, or cross-cutting shared infrastructure (such as networks, security, etc.).

This allows you to consolidate integrations under one service. With integrations consolidated under one service, you get proper service-level reporting in our Analytics module.

  1. Go to Configurations → Services and select a service to add an integration to. Open the Integrations tab and click New Integration.
  1. Select your integration type as described above and name your integration.
  2. Click Save.

You can also move an integration to another service. For more information on this, please check out our article on moving integrations to another service.

For additional tips on how to use multiple integrations to represent your systems, please check out our best practices article here.

Delete an integration from a service

If an integration is no longer needed, it can be deleted. A deleted integration cannot be recovered. You will need to create a new integration of the same type on the service should you wish to use that integration again.

Note:

If you'd like to instead temporarily deactivate an integration, you can either place the service in maintenance mode, or temporarily move the integration to an inactive service.

  1. Find the integration to delete by going to ConfigurationsServicesIntegrations.
  2. Click the gear icon for the integration and select Delete.

When an integration is deleted, we do not remove the incidents. There are no changes to the open or resolved incidents.

Disable a Service

Disabling a service is a good choice in the following cases:

  • A service is no longer in use and you want to preserve its settings for future use.
  • Prevent incidents from triggering.

Disabling a service is very similar to putting a service in maintenance mode. New incidents will not trigger while a service is in either of these states.

The main difference is that a maintenance window will eventually end and bring a service back online. A disabled service must be manually re-enabled.

To disable your service:

  1. Go to the Configuration menu and select Services.
  2. Click on the name of the service you would like to disable.
  3. Click Disable Service on the right-hand sight of the page and then click OK on the confirmation dialog.

To re-enable a service:

  1. Go to the Configuration menu and select Services.
  2. Click on the name of the service you would like to enable.
  3. Click on the Enable this service button, and your service will be enabled.

Move an Integration to Another Service

You have the ability to move an integration from one service to another if need be. You can move integrations between as many services as needed, as many times as needed and all incidents tied to that integration will follow.

Note

Your integration key will not change after moving the integration from one service to another.

  1. Go to Configuration → Services.
  2. Click on the service which contains the integration you would like to move.
  3. Go to the Integrations tab on the service's page. Then use the settings gear next to the integration to select Move to Another Service. You have the option rename the integration before or after moving it.

Note

If the settings on the service you are moving an integration to differ from the current service, you'll receive a warning message with the option to proceed or cancel.

  1. Select the Destination Service where you would like the Integration to move to, and click Move Integration.

Create a Vendor Specific Service via API

The easiest way to create a service and integration is in the PagerDuty web UI, however, you can create a service with a vendor-specific integration via the API.

You’ll need to know the vendor_id. Although we haven’t documented the vendor API, it follows the same pattern as our other APIs. Here's an example using PDJS to look up vendor_id: http://jsfiddle.net/8fxudqbj/6/.

Note: You will need a v1 API key to use this JSFiddle.

Here is a list of common vendor_ids:

AWS Cloudwatch

PZQ6AUS

Nagios

P5ZAJ2D

New Relic

PQFCJER

ServiceNow

PRC098W

Zabbix

PJOGQ4Q

After finding the right vendor_id, you'll need to POST the new service to the services endpoint with type: "integration", vendor_id: "PQFCJER".

Example: http://jsfiddle.net/eurica/sdL4wrob/.

Creating, Editing, and Deleting Services and Integrations