Home
%3CLINGO-SUB%20id%3D%22lingo-sub-467566%22%20slang%3D%22en-US%22%3EMonitor%20your%20applications%20by%20configuring%20New%20Relic%20Alerts%20in%20Microsoft%20Teams%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-467566%22%20slang%3D%22en-US%22%3E%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EMicrosoft%20Teams%20is%20gaining%20a%20lot%20of%20traction%20in%20DevOps%20space%20and%20has%20over%2065%2B%20DevOps%20apps%20in%20store.%20We%20also%20constantly%20look%20for%20user%20feedback%2Fhow%20to%20improve%20the%20experience%20for%20our%20dev%20community.%20One%20of%20the%20asks%20from%20our%20customers%20has%20been%20the%20integration%20of%20New%20Relic%20into%20Teams.%20New%20Relic%20is%20one%20of%20widely%20used%20tools%20in%20DevOps%20space.%20It%20allows%20developers%20to%20find%20and%20fix%20problems%20faster%2C%20building%20high%20performing%20DevOps%20teams.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EThere%E2%80%99s%20an%20existing%20%3CA%20href%3D%22https%3A%2F%2Fappsource.microsoft.com%2Fen-us%2Fproduct%2Foffice%2FWA104381573%3Fsrc%3Doffice%26amp%3Btab%3DOverview%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%22%3ENew%20Relic%20connector%20on%20appsource%3C%2FA%3E%20that%20you%20can%20use%20to%20configure%20New%20Relic%20notifications%20in%20Teams.%20This%20article%20explains%20how%20we%20can%20use%20incoming%20webhooks%20and%20make%20New%20Relic%20notifications%20actionable.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EWebhooks%20are%20%E2%80%98user-defined%20HTTP%20callbacks%E2%80%99.%20They%20are%20trigged%20by%20some%20events%20like%20drop%20in%20response%20time%2C%20higher%20CPU%20usage%2C%20values%20(like%20count%2C%20average%20etc.).%20Whenever%20the%20event%20occurs%2C%20the%20source%20site%20makes%20an%20HTTP%20request%20to%20the%20URL%20configured%20for%20the%20webhook.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%3CSTRONG%3EGenerating%20Webhook%20for%20Teams%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EAdd%20incoming%20webhook%20connector%20to%20the%20Teams%20channel%20where%20you%20want%20to%20receive%20the%20New%20Relic%20notifications.%20You%20can%20even%20choose%20to%20upload%20the%20custom%20image%20for%20your%20connector.%20If%20you%20choose%20not%20to%20upload%20the%20custom%20image%2C%20default%20incoming%20webhook%20image%20will%20be%20shown%20at%20notifications.%20Copy%20the%20URL%20from%20the%20webhook%2C%20this%20will%20be%20needed%20when%20you%20would%20configure%20the%20notifications%20in%20New%20Relic%20portal.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F109355i81364C30FC6FBD33%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20alt%3D%22Configuring%20Webhook%20in%20Teams.png%22%20title%3D%22Configuring%20Webhook%20in%20Teams.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSTRONG%3EConfiguring%20Webhook%20on%20New%20Relic%20Portal%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EFrom%20New%20Relic%20portal%2C%20create%20a%20new%20notification%20channel%20using%20webhooks.%20Fill%20in%20the%20webhook%20details%20at%20the%20new%20relic%20page.%20In%20%E2%80%98Base%20Url%E2%80%99%20field%2C%20paste%20the%20URL%20copied%20from%20Teams%20incoming%20webhook%20configuring%20page.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F109357i4BF83366C9563FF1%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20alt%3D%22NewRelicPortal.png%22%20title%3D%22NewRelicPortal.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%3CSTRONG%3ECustom%20JSON%20Example%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EBelow%20is%20the%20custom%20payload%20example%20that%20I%20used%20to%20generate%20the%20notification%20card.%20You%20can%20use%20your%20own%20custom%20JSON%20it%20based%20on%20your%20needs.%3C%2FP%3E%0A%3CPRE%3E%7B%0A%22summary%22%3A%20%22New%20Relic%20Alert%3A%20Test%20Condition%20in%20New%20Relic%20Alert%20-%20Test%20Policy%22%2C%0A%22themeColor%22%3A%20%220076D7%22%2C%0A%22%40type%22%3A%20%22MessageCard%22%2C%0A%22potentialAction%22%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22%40type%22%3A%20%22openUri%22%2C%0A%20%22name%22%3A%20%22Go%20To%20Incident%22%2C%0A%20%22targets%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22os%22%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22uri%22%3A%20%22http%3A%2F%2F...%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%7D%2C%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22%40type%22%3A%20%22openUri%22%2C%0A%20%22name%22%3A%20%22Go%20To%20condition%22%2C%0A%20%22targets%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22os%22%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22uri%22%3A%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoftteams%2Fplatform%2Fconcepts%2Fconnectors%2Fconnectors%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%7D%2C%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22%40type%22%3A%20%22openUri%22%2C%0A%20%22name%22%3A%20%22Application%20Dashboard%22%2C%0A%20%22targets%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22os%22%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22uri%22%3A%20%22http%3A%2F%2F...%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%7D%2C%0A%20%7B%0A%20%22%40type%22%3A%20%22ActionCard%22%2C%0A%20%22name%22%3A%20%22Add%20a%20comment%22%2C%0A%20%22inputs%22%3A%20%5B%0A%20%20%20%7B%0A%20%20%20%20%22%40type%22%3A%20%22TextInput%22%2C%0A%20%20%20%20%22id%22%3A%20%22comment%22%2C%0A%20%20%20%20%22title%22%3A%20%22Enter%20your%20comment%22%2C%0A%20%20%20%20%22isMultiline%22%3A%20true%0A%20%20%20%7D%0A%20%20%5D%2C%0A%20%22actions%22%3A%20%5B%0A%20%20%20%7B%0A%20%20%20%20%22%40type%22%3A%20%22HttpPOST%22%2C%0A%20%20%20%20%22name%22%3A%20%22OK%22%2C%0A%20%20%20%20%22target%22%3A%20%22http%3A%2F%2F...%22%0A%20%20%20%7D%0A%20%20%5D%0A%20%7D%2C%0A%20%0A%5D%2C%0A%22%40context%22%3A%20%22http%3A%2F%2Fschema.org%2Fextensions%22%2C%0A%22sections%22%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22activitySubtitle%22%3A%20%22New%20Relic%20Alert%20-%20Test%20Policy%22%2C%0A%20%20%20%20%20%20%20%20%22activityTitle%22%3A%20%22New%20Relic%20Alert%3A%20Test%20Condition%20in%20New%20Relic%20Alert%20-%20Test%20Policy%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22images%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22image%22%3A%22http%3A%2F%2Fgorgon.nr-assets.net%2Fimage%2F0bade12c-e4f4-4f50-8155-6445741c3e99%3Fconfig.legend.enabled%3Dfalse%26amp%3Bheight%3D210%26amp%3Bwidth%3D400%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%7D%2C%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22markdown%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%22facts%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22Assigned%20to%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22value%22%3A%20%22Unassigned%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22Due%20date%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22value%22%3A%20%22Mon%20May%2001%202017%2017%3A07%3A18%20GMT-0700%20(Pacific%20Daylight%20Time)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22Status%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22value%22%3A%20%22Not%20started%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%7D%0A%5D%0A%7D%0A%3C%2FPRE%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3EOnce%20the%20channel%20is%20created%2C%20you%20can%20setup%20Alert%20policies%2C%20Conditions%20etc.%20based%20on%20which%20you%E2%80%99ll%20start%20getting%20the%20notifications%20in%20the%20Teams%20channel%20that%20you%20configured%20in%20the%20portal.%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%3CBR%20%2F%3EHere%E2%80%99s%20the%20sample%20of%20New%20Relic%20notification%20generated%20based%20on%20above%20JSON%3C%2FP%3E%0A%3CP%20style%3D%22text-align%3A%20justify%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Fgxcuf89792.i.lithium.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F109358i6F947CDABB6F24D3%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20alt%3D%22NewRelic_Notification.png%22%20title%3D%22NewRelic_Notification.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-467566%22%20slang%3D%22en-US%22%3E%3CP%3EAlways%20stay%20up%20to%20date%20on%20your%20application%20health%20by%20configuring%20New%20Relic%20notifications%20in%20Microsoft%20Teams%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-467566%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EDeveloper%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMicrosoft%20Teams%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Microsoft

Microsoft Teams is gaining a lot of traction in DevOps space and has over 65+ DevOps apps in store. We also constantly look for user feedback/how to improve the experience for our dev community. One of the asks from our customers has been the integration of New Relic into Teams. New Relic is one of widely used tools in DevOps space. It allows developers to find and fix problems faster, building high performing DevOps teams.

 

There’s an existing New Relic connector on appsource that you can use to configure New Relic notifications in Teams. This article explains how we can use incoming webhooks and make New Relic notifications actionable.

 

Webhooks are ‘user-defined HTTP callbacks’. They are trigged by some events like drop in response time, higher CPU usage, values (like count, average etc.). Whenever the event occurs, the source site makes an HTTP request to the URL configured for the webhook.

 

Generating Webhook for Teams

Add incoming webhook connector to the Teams channel where you want to receive the New Relic notifications. You can even choose to upload the custom image for your connector. If you choose not to upload the custom image, default incoming webhook image will be shown at notifications. Copy the URL from the webhook, this will be needed when you would configure the notifications in New Relic portal.

 

Configuring Webhook in Teams.png

 

Configuring Webhook on New Relic Portal

From New Relic portal, create a new notification channel using webhooks. Fill in the webhook details at the new relic page. In ‘Base Url’ field, paste the URL copied from Teams incoming webhook configuring page.

 

NewRelicPortal.png

 

Custom JSON Example

Below is the custom payload example that I used to generate the notification card. You can use your own custom JSON it based on your needs.

{
"summary": "New Relic Alert: Test Condition in New Relic Alert - Test Policy",
"themeColor": "0076D7",
"@type": "MessageCard",
"potentialAction": [
    {
        "@type": "openUri",
	"name": "Go To Incident",
	"targets": [
            {
                "os": "default",
                "uri": "http://..."
            }
        ],
    },
    {
        "@type": "openUri",
	"name": "Go To condition",
	"targets": [
            {
                "os": "default",
                "uri":"https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/connectors/connectors"
            }
        ],
    },
    {
        "@type": "openUri",
	"name": "Application Dashboard",
	"targets": [
            {
                "os": "default",
                "uri": "http://..."
            }
        ],
    },
	{
	"@type": "ActionCard",
	"name": "Add a comment",
	"inputs": [
			{
				"@type": "TextInput",
				"id": "comment",
				"title": "Enter your comment",
				"isMultiline": true
			}
		],
	"actions": [
			{
				"@type": "HttpPOST",
				"name": "OK",
				"target": "http://..."
			}
		]
	},
	
],
"@context": "http://schema.org/extensions",
"sections": [
    {
        "activitySubtitle": "New Relic Alert - Test Policy",
        "activityTitle": "New Relic Alert: Test Condition in New Relic Alert - Test Policy"
    },
    {
        "images": [
            {
                "image":"http://gorgon.nr-assets.net/image/0bade12c-e4f4-4f50-8155-6445741c3e99?config.legend.enabled=false&height=210&width=400"
            }
        ],
    },
    {
        "markdown": true,
        "facts": [
            {
                "name": "Assigned to",
                "value": "Unassigned"
            },
            {
                "name": "Due date",
                "value": "Mon May 01 2017 17:07:18 GMT-0700 (Pacific Daylight Time)"
            },
            {
                "name": "Status",
                "value": "Not started"
            }
        ]
    }
]
}

Once the channel is created, you can setup Alert policies, Conditions etc. based on which you’ll start getting the notifications in the Teams channel that you configured in the portal.


Here’s the sample of New Relic notification generated based on above JSON

NewRelic_Notification.png