What could server health monitoring look like in OMS?[Updated 11/29/2017: This blog post has been updated to reflect the new query language for Log Analytics. For a good example of how we are now visualizing Server performance in OMS see this blog post. Also note that the “My Dashboard” functionality referenced in this blog post is now legacy.]
I have written several blog posts to show how we could create server health visualization via the “My Dashboard” type functionality (shown in the graphic below). These are available at:
The focus of this blog post is two-fold:
- To show the full “My dashboard” approach to server health monitoring which was built from the blog posts above.
- To provide a glimpse into possibilities of what it would look like if we had a solution like this in OMS.
My Dashboard in OMS
The My Dashboard which I created from the blog posts listed above is shown below. This shows which servers are currently not reporting as well as the most recent counter values for memory, disk and processor metrics.
To configure this we need to add several performance counters. The ones that we are looking for are actually among the welcome list defaults:
Once we have the counters gathered we can now create saved queries which are then used by the dashboard.
The following are the queries used by the server health dashboard shown above:
search ObjectName != “Advisor Metrics” and ObjectName != “ManagedSpace” and isnotempty(MG) | summarize LastData = max(TimeGenerated) by Computer | where LastData < ago(1h) and Computer != “”
Perf | where (ObjectName == “Memory” and CounterName == “Available MBytes”) and TimeGenerated > ago(1h) | summarize Counter = max(CounterValue) by Computer
Perf | where (ObjectName == “Memory” and CounterName == “% Committed Bytes In Use”) and TimeGenerated > ago(1h) | summarize Counter = min(CounterValue) by Computer
Perf | where (ObjectName == “LogicalDisk” and CounterName == “% Free Space”) and TimeGenerated > ago(1h) | summarize Counter = min(CounterValue) by Computer
Perf | where (ObjectName == “LogicalDisk” and CounterName == “Free Megabytes”) and TimeGenerated > ago(1h) | summarize Counter = min(CounterValue) by Computer
Perf | where ObjectName == “Processor” and CounterName == “% Processor Time” and TimeGenerated > ago(1h) | summarize Counter = max(CounterValue) by Computer
Perf | where ObjectName == “System” and CounterName == “Processor Queue Length” and TimeGenerated > ago(1h) | summarize Counter = max(CounterValue) by Computer
Solutions in OMS
Microsoft OMS uses solutions to display the overall status of a set of functionality which can then in turn be drilled into to gather more information. The solution gallery in OMS is impressive and it is growing regularly (see the screenshot below for the current solution gallery list).
This blog post is designed to give an idea of how that might function in OMS and a look into how it might actually look if it/when that functionality was added into OMS as a pre-built solution.
We would need to add our counters are shown earlier in this blog post. The next step would be to build an OMS solution. To see what types of solutions we may be able to build we can start by disassembling what solutions already exist in OMS to find commonalities.
Disassembling the top level items in OMS:
A number & three other numbers.
A donut chart & breakdown of the numbers in the chart.
Two numbers & one bar chart.
Two numbers with a trend:
Two numbers & two charts:
Disassembling the second level items in OMS (first level drill-down):
Donut with details below:
Bar chart with details below:
One number with details below:
Two numbers with details below:
Bar chart and sections for additional numbers:
Disassembling the third level items in OMS (second level drill-down):
Third level items drill down into the various search queries which were defined by the second level items or into another second level dashboard item.
Assembling a framework for a server health solution in OMS:
If we go back to the original idea of this blog post, the focus is on how we would display server health information. We’ll use the above screenshots and our BFF Microsoft Paint to create a few mockups as to what this could look like on the top level view of OMS. The following are a few potential mockups based upon what we have seen for the top level views of solutions in OMS re-designed which have been redesigned to visualize server health.
From the top level view we could then drill into a detailed view such as one of the three shown below.
Summary: The existing My Dashboard functionality can provide some excellent insights into server health information. In the future if we can build or own solutions in OMS there appear to be some excellent types of visualization which we will be able to accomplish. If you want to see what a server health solution would look like in action join me on March 17th for a webinar where we will demonstrate a custom OMS solution for server health monitoring and we will showcase some of the new functionality available for Launch! Registration is now available here!
In the last part of this blog series we will look at any challenges that I have found when using OMS to monitor server key performance indicators.