Real Time Reporting – ASP MVC wid Signal R

With the advent of the new age and technological advances, Reporting and BI is taking on a new shape in multiple dimensions.

One arena is expanding in terms of the data volumes (terming Big Data) another arena into more complex calculations and analysis and ease of dimensional modelling (products such as SSAS, Jedox, R, Python and more..) some in fancy reporting and interactive dashboards (like Power View/Maps/BI, SSRS).

But some thing caught up my attention recently was the usage of HTML 5 web sockets and its implementation in ASP MVC framework via Signal R framework. The combination of two opened up a whole new world of imaginations and solutions, I was holding aback in my wishes for a fair amount of time.

One of the imaginations I would like to put forth in this blog is as follows:

Real Time Monitoring Solutions for the Corporate Networks Servers

CropperCapture[3]

Many times in my previous experiences across organizations, Servers went down or application crashes occurred as disk ran out of space, or thread pool recycles, or processes/memory starvation occurred during the peak hours. All due to no insight into the server status across the network and their real-time status.

Though periodic jobs can help out extract the vital statistics (via Performance Counters) to the common database, of which the reports could be ran, but still no real time insight into the server was a real road-block.

Many times the commercial solutions though available are as usual with all the cost and managerial approvals are either un-affordable or just not right in some ways or other as off-the shelf products never fit the bill in all aspects of the business requirements. So to over come I mocked a quick solution to show case the power of the above frameworks in a simple POC which monitors any machine off its vital statistics (via Performance Counters) just by providing the Machine name.

The source code is attached in this blog for the same, and its details can be interpreted via the code as its simple enough with all the relevant documentation for the frameworks.

Just to add some pointers for my code references:

http://haishibai.blogspot.com.au/2010/02/tiy-collect-remote-performance-counters.html

http://www.asp.net/signalr/overview/getting-started/tutorial-server-broadcast-with-signalr

Note: Once the machine name is passed by the User from the UI for the statistics requested, the web app creates a timer on the server side which has an interval defined of 1 second on which it extracts the performance counter of the target machine and send it across to the request user via the signal R/ Web socket methodology.

In order to run the code only one change is required where the credentials need to be set in the user code (not in web.config as its a POC) which has access to the requested machine performance counters information.

MonitorApplication\MonitorApplication\Hubs\ServerInfo.cs

CropperCapture[1]

Hope it helps.

Downloads

Posted in Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *

*