• Products
  • Get started
  • Documentation
  • Resources

Integrate Opsgenie with New Relic Alerts (New)

New Relic logo

What does Opsgenie offer New Relic users?

Opsgenie has a native integration with New Relic Alerts. Use the integration to send New Relic incidents to Opsgenie’s API with detailed information. Opsgenie acts as a dispatcher for New Relic incidents, determines the right people to notify based on on-call schedules– notifies via email, text messages (SMS), phone calls, and iPhone & Android push notifications, and escalates alerts until the alert is acknowledged or closed.

This document describes how to configure the integration and details of data that Opsgenie receives from New Relic.

Functionality of the integration

  • When an alert is created in New Relic Alerts, an alert is also created in Opsgenie automatically through the integration.

  • When an alert is closed in New Relic Alerts, the related alert is also closed in Opsgenie automatically through the integration.

  • When an alert is acknowledged in New Relic Alerts, the related alert is also acknowledged in Opsgenie automatically through the integration.

Configurations in Opsgenie

You can add this integration from your team dashboard

If you're using Opsgenie's Free or Essentials plan, or if you’re using Opsgenie with Jira Service Management's Standard plan, you can only add this integration from your team dashboard as the Integrations page under Settings is not available in your plan.

Adding the integration from your team dashboard will make your team the owner of the integration. This means Opsgenie will assign the alerts received through this integration to your team only.

To do that,

  1. Go to your team’s dashboard from Teams,

  2. Select Integrations, and select Add integration.

Follow the rest of the steps to complete the integration.

  1. Go to Settings > Integrations. Search for New Relic and select Add

  2. Add the people you want to notify for New Relic in the Responders field.

  3. Copy the API key.

  4. Select Save Integration.

Configurations in New Relic

  1. From the New Relic side menu, select Alerts & AI.

  2. Go to Destinations and select Webhook from the options to add a new destination.

  3. Enter a name for the Webhook name.

  4. Enter the URL generated for you into the Endpoint URL field. You may find this URL in your Opsgenie’s New Relic integration page.

  5. Select Save destination.

  6. From Alerts & AI, select Workflows. Then select Add a workflow.

  7. Filter the data as you wish, then select Webhook from Notify.

  8. Select the webhook and the destination you’ve created above.

  9. Copy the New Relic payload template (provided to you on the next step of this document). Then paste it into Payload template.

  10. Select Send test notification and make sure it’s sent successfully. Then select Update message.

  11. You’ll be taken back to the workflow page. Select Activate workflow.

  12. Make sure the workflow is Enabled in New Relic.

New Relic Payload Template

Use this payload template while creating a new Workflow in New Relic.

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 { "tags": "tag1,tag2", "teams": "team1,team2", "recipients": "user1,user2", "payload": { "condition_id": {{json accumulations.conditionFamilyId.[0]}}, "condition_name": {{json accumulations.conditionName.[0] }}, "current_state": {{#if issueClosedAtUtc}} "closed" {{else if issueAcknowledgedAt}} "acknowledged" {{else}} "open"{{/if}}, "details": {{json issueTitle}}, "event_type": "Incident", "incident_acknowledge_url": {{json issueAckUrl }}, "incident_api_url": "N/A", "incident_id": {{json issueId }}, "incident_url": {{json issuePageUrl }}, "owner": "N/A", "policy_name": {{ json accumulations.policyName.[0] }}, "policy_url": {{json issuePageUrl }}, "runbook_url": {{ json accumulations.runbookUrl.[0] }}, "severity": {{#eq "HIGH" priority}} "WARNING" {{else}}{{json priority}} {{/eq}}, "targets": { "id": {{ json entitiesData.entities.[0].id }}, "name": {{ json entitiesData.entities.[0].name }}, "type": "{{entitiesData.entities.[0].type }}", "product": "{{accumulations.conditionProduct.[0]}}" }, "timestamp": {{#if closedAt}} {{ closedAt }} {{else if acknowledgedAt}} {{ acknowledgedAt }} {{else}} {{ createdAt }} {{/if}} } }

 

Sample JSON payload sent from New Relic to Opsgenie

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 { "tags": "tag1,tag2", "teams": "team1,team2", "recipients": "user1,user2", "payload": { "condition_id": 1, "condition_name": "test condition", "current_state": "open", "details": "CPU > 50% for 5 minutes", "event_type": "INCIDENT", "incident_acknowledge_url": "http://localhost/incident/1/acknowledge", "incident_api_url": "http://localhost/api/incident/1", "incident_id": 1, "incident_url": "http://localhost/incident/1", "owner": "John Doe", "policy_name": "test policy", "policy_url": "http://localhost/policy/1", "runbook_url": "http://localhost/runbook/url", "severity": "CRITICAL", "targets": [ { "id": "12345", "link": "http://localhost/target/12345", "name": "Test Target", "labels": [ "production", "hostname" ], "type": "Server", "product" : "productName" } ], "timestamp": 123456789000 } }

This payload is parsed by Opsgenie as:

JSON

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [ "owner" : "John Doe", "severity" : "CRITICAL", "policy_url" : "http://localhost/policy/1", "teams" : [ "team1", "team2" ], "target_name" : "Test Target", "target_type" : "Server", "policy_name" : "test policy", "incident_url" : "http://localhost/incident/1", "incident_acknowledge_url" : "http://localhost/incident/1/acknowledge", "tags" : [ "tag1", "tag2" ], "event_type" : "INCIDENT", "incident_id" : "1", "target_link" : "http://localhost/target/12345", "runbook_url" : "http://localhost/runbook/url", "recipients" : [ "user1", "user2" ], "target_labels" : [ "production", "hostname" ], "details" : "CPU > 50% for 5 minutes", "state" : "open", "condition_name" : "test condition", "target_product" : "productName", "timestamp" : "123456789000" ]

Additional Help