The term “Availability” is for some organizations crucial as they can’t afford any downtime. Your SharePoint pages should be up as you don’t want to lose credibility in front of your customers especially if you are selling services/products through SharePoint. As being the IT department, if you don’t propose some decent monitoring tools, the business users will bypass you –and your department by implementing their own freeware/open source tool to check the availability of their website. Many times, they are the first to yell when a site is down and they work better than any internal monitoring system.
I’m a huge fan of Azure Application Insights and from that service directly you configure a High Availability test plan to check the availability of your website(s). If you have already configured Application Insights, open its Application Insights resource in the Azure portal. If it’s your first time; follow this step-by-step:
- Connect to Azure (https://portal.azure.com)
- Create Resource Group
- Create Application Insight in that Resource Group.
- Provide a Name
- Application type should be NET web application
- Select your subscription
- Use the newly created Resource Group
- Select the location (West Europe for me)
Once your Application Insight is created hit Availability from the Investigate section and create a new test plan. Provide the following as per requested:
- Hit a Test name
- Select a Test Type
- URL ping test: a simple test that you can create in the Azure portal.
- Multi-step web test: which you create in Visual Studio Enterprise and upload to the
- Provide the “to be tested URL”
- This can be a SharePoint as a non-SharePoint site.
- Parse dependent Requests: if this option is checked, the test will request images, scripts, style files etc… This is something optional, so, it’s up to you (!) select this option as the test fails if all resources cannot be successfully downloaded within the timeout for the whole test.
- Enable retries for availability test failures: if this option is checked, when the test fails, it is retried after a short interval. A failure is reported only if three successive attempts fail. So, again this is an optional setting, and it’s up to you to select this option.
Next setting, you can select up to 16 test location. In my case Paris is going to be the place where the Azure servers send web requests to our URL. It’s a common practice to have more than one location so you can distinguish problems in our website from network issues.
The success criteria are based on my timeout(s). The test is counted as a failure if the responses from our site have not been received within this period. Basically my site should response within the 30 seconds AND has a HTTP return code of 200. Any other HTTP return code is unsuccessful. You also can specify any “Response Header” in the “content must contain” text box. Unfortunately, it must be a plain string, without wildcards… (=basically a string)
And finally enable the alerts and provide an email address to be send in case of a failure. By default, alerts are sent to us if failures appear in three locations over five minutes. Hit on OK and save the test.
And basically that’s it, after a few minutes the first data should come into your application insight and you can see how many successful tests are made and how many of them failed.
If a test fails you will get noticed by mail and this is how it looks like:
Whenever you get a failure for any kind of website you can deep dive into that specific failure. Hit on any red button from the Availability test result and get in-dept. result details. From the details section you also can search and filter on data and get real-time enterprise grade charts.
That’s it, simple but powerful. I really love and enjoy Azure Application Insights as this can be used for any kind of website. With a few clicks I can easily configure Availability tests and see how my website is doing! You event can use PowerShell to configure what we did in a click click next finish ideology https://docs.microsoft.com/en-us/azure/application-insights/app-insights-powershell#add-an-availability-test .
Share the love and have fun!