Does your enterprise have applications that run on Microsoft .NET, but your infrastructure team doesn’t have any real visibility into how its functioning? Whether the application is developed by a third party such as Microsoft SharePoint, or you have a custom application running on Azure databases as a service; having the right insight into the application performance can ensure expedited resolution of any issues that occur including slowness. During this article we will look at some of the real-world issues I have personally experienced within Microsoft .NET applications. We will first gain an understanding of how challenging it is to troubleshoot with traditional and Microsoft .NET monitoring native tools. We will then look at how eG Innovations can ensure your time to resolution when troubleshooting Microsoft .NET issues is fast.
Before we begin let’s start with a quick Wikipedia definition. “.NET Framework is a product of Microsoft. It is a programming framework used by software applications in order to run.” In my experience many organizations either own an application that was developed for them on .NET or they are coding their own proprietary applications on .NET.
The Challenge with Microsoft .NET Monitoring
When it comes to troubleshooting Microsoft .NET with native toolsets finding an answer to the problem can be very difficult. Some of the ways to troubleshooting involve reviewing event logs and general server performance monitoring. The challenge with these options for troubleshooting is that they take time, and even after researching IT admins still may not have the answer. To demonstrate, here are a couple situations I have had to troubleshoot.
- Situation 1: SharePoint – Over the years I have worked many different versions of SharePoint, including SharePoint Online. I recently deployed a third-party socialization package into SharePoint Online, but ran into some problems after deployment.
Upon initial deployment there were some slowness issues, and the only way to dive into the problem the users were experiencing was to look at some custom logs, and then calling support. After much time working on this problem, we figured out there was a code-level issue causing the slowness being experienced.
- Situation 2: Custom Asset Tracking System – For this one I personally didn’t write the .NET application, but I was on-call when a ticket was opened to report slowness for an internally developed custom asset tracking system. The application had a SQL backend database to store the asset information as it was added to the system.
After much research and no internal/external resources to leverage; since it was an internally created application, it was eventually determined that there was a slow DB query to the backend database. After reworking the query multiple times, I was able to resolve the issue, but with the right monitoring tool in place detection could have occurred much more quickly.
Early Detection Monitoring
When I consider the challenges we discussed here, at the end of the day, the best way to ensure that your Microsoft .NET applications are healthy and online is to implement a monitoring solution that expedites the troubleshooting process. Let’s take a look at how eG Innovations specifically can help with monitoring the Microsoft .NET situations discussed here today.
When troubleshooting the code issue in Situation 1, it was very challenging to find the issue since the code was developed by a third party. This meant I needed to rely on the limited information available to me and then ultimately their support to figure out what was causing the slowness.
eG Innovations’ monitoring solution, eG Enterprise, makes it very easy to identify where the issue is and what was causing it.
- Real user monitoring (RUM) using eG Enterprise helps passively monitor user transactions to the SharePoint application in real time and break down the page load time into network, server, browser and content download times. In Figure 1 below, you can see that RUM clearly indicates that it is a server-side issue which is the cause for user complaints.
Figure 1: Real user monitoring breaks down web application page load time
- To further pinpoint the problem, eG Enterprise uses a distributed transaction tracing Using byte-code instrumentation of the .NET CLR on your Microsoft IIS web server, eG Enterprise tracks all user transactions to web application in real time and determines where slowness occurs. The example below (see Figure 2), shows how eG Enterprise provides a deeper level of visibility of the .NET application’s server-side transaction execution. The transaction execution on the application server is slow and drilling down into the IIS server provides the stack trace that identifies the exact line of code that is problematic and causing slowness (see the fifth line of the stack trace in Figure 2).
Figure 2: Code-level analytics identifying the problematic .NET method affecting application processing
When troubleshooting Situation 2 where the custom application was having issues with the database queries, it was also a time-consuming process to determine root cause. With eG Enterprise, as shown in Figure 3 below, slowness due to database queries is easy to identify quickly. In addition to providing .NET code-level visibility, distributed transaction tracing also provides database query-level visibility. The application code doesn’t need to be changed to obtain this level of monitoring and it’s all done without any installing agents on the database server.
Figure 3: .NET transaction flow analysis using distributed transaction tracing identifying slow DB query
Troubleshooting Microsoft .NET applications can be challenging., so Microsoft .NET monitoring is important to ensure your time to resolution for issues you experience is expedited, be sure to implement an end-to-end .NET monitoring tool that can help identify and lead you to resolution fast.