Office 365 Service Health using Office 365 Service Communications API

A template to monitor Office 365 Service Health Status using Office 365 Service Communications API and Azure Application for authentication.

Results will display as below

pastedImage_2.png

Instructions

Configure an Azure application to authenticate your tenant to the API

Follow the steps in the below link

Configure SAM to use Microsoft Graph API for Office-365 related templates

in addition to the above, ensure you add these permissions for the Office 365 Management API

pastedImage_8.png

In SolarWinds add credentials for your Azure Application

Username:           Client ID

Password:            Client Secret

The Tenant ID will be passed to the script via the arguments field

In the component monitor, make sure you add the Office 365 service you want to monitor and your tenant ID to the arguments field.

The script is the same for each Office 365 service so only this needs to be changed if adding additional services

pastedImage_13.png

I display this on my dashboard by adding a custom table widget with the settings below.

So far this is the best way I have found to display the information, although I am fairly new to SolarWinds

pastedImage_9.png

Hope this helps people as I couldn't find much info on retrieving service health information

Thanks to jvb as I used and modified the api authentication methods from their Microsoft Office 365 Teams template

  • Hi Team, i am trying to get the benefit out of this template as our customer is looking for a way to monitor Office 365 service using SolarWinds.

    I am very green to use SAM templates. Reques your support here.

    As per the instruction given in the article, we have created an application for SolarWinds in Azure. Now the questions running in my mind to take this further are:

    1. Where do i need to add my client id, client secret as credentials in SolarWinds, is it under manage API credentials (if so what type i should choose, is it API Key, basic authorization. there are a lot of types i can see while adding..), please help. 

    2. In the template, under each component monitor for service, there is another option to select "Credential for monitoring" - what credential i should use". i cannot see the API credential that i added in the drop down-- so i suspect i added the credentials in a wrong place - please correct me.

    3. The biggest concern is once the template is good, against what device i should assign this template to test- this leaves me blank. Please help.

  • We had this working just fine months ago.  When I looked recently, everything is failing and if I test an individual component, I get back 
    Exception was caught: The remote server returned an error: (500) Internal Server Error.

    Have gone through the credentials in Azure AD and Solarwinds and verified everything, but not working. Where do I look now?

  • There are many potential pitfalls that one may be faced with in the process of developing their own mobile application. One of the most common mistakes that companies make is hiring third party developers and also they can check outsourced document management and digitization to get their best services. Third party developers set up the SDK, but they do not actually develop any code, they only provide the actual code that will be used in the app.

  • After running the script manually, we were able to determine that the line 'if ($Status.status -match "PIRPublished") {$Stat = 7}' was the issue.  It seem Microsoft has updated this status to 'PostIncidentReviewPublished' instead.  Once we updated that, then we were able to get a correct status reading.  Also, some of the items are outdated (OSub, DynamicCRM).  We saw that no status would show on them, but after reviewing our O365 admin center health page, we noticed those were not there.  This module might need some minor updating.  But thanks for it nevertheless!

  • This is actually the error I'm getting as well.  Supposedly due to a missing powershell extension but haven't been able to test this.  Anyone else get past this?