This post is intended to help you get started with the Client-Side Monitoring (CSM) feature in Operations Manager 2012. Client-Side Monitoring provides a real end user perspective on application health for .NET applications, as users are interacting with the application, by collecting performance and exception data from the users browsers in near real time.
I will walk through the necessary steps to enable Client-Side Monitoring as well as ways to interpret and deal with the output of the Client-Side Monitoring compatibility check, which you will run before enabling CSM.
As described in more detail here, you first need to install the Operations Manager Agent on the servers you want to monitor, and import the required Management Packs (the Windows Server Operating System Management Pack, as well as the IIS 7 and/or IIS 8 Management Packs, then the Microsoft.SystemCenter.Apm.Web.IIS7 and Microsoft.SystemCenter.Apm.Web.IIS8 Management Packs from the Operations Manager media).
After doing this, your Web Applications will be automatically discovered. Go to the appropriate “inventory” view in the Operations Manager Console, under Application Monitoring\.NET Monitoring
Select the application you are interested in monitoring. Now, you are ready to run the Client-Side Monitoring Compatibility check.
Note that it is not possible to enable only Client-Side Monitoring, the Server-Side monitoring must also be enabled when you run the .NET Application Performance Monitoring template.
Is is very important to do this in a test or pre-prod environment.
To run the Compatibility Check, simply select the application in the Operations Manager Console, then select the “Check Client-Side Monitoring Compatibility” task and run it. Once the task completes, you will see the results in the task status window, along with any issues found and the resources that may be incompatible with Client-Side Monitoring.
The compatibility check is an Operations Manager task that runs on the server(s) that host your application and checks your application compatibility by examining the binaries and pages that make up the application. If possible incompatibilities are found, the affected resources will be listed in the compatibility check output.
There are 7 compatibility rules that are checked against your application. Here is a short explanation of each rule and the appropriate mitigations for each.
The recommended solution for this issue is to exclude the identified pages from monitoring. See section “excluding pages from monitoring” in this post.
Note that the application may still work even if you do not exclude the pages from monitoring. See section “What if I have incompatibilities that I cannot change or do not want to change in my application?”
The Client-Side Monitoring feature uses the Response.Filter property to monitor pages. If the application web page contains the ASP.NET substitution control, changing the Response.Filter property is prohibited.
Client-Side Monitoring uses the Response.Filter property for monitoring purposes. If your application code calls Response.Flush(), this could lead to incorrect responses returned to the browser. This is a warning of a possible compatibility issue, and the recommended solution is to change your application code.
Note that the application may still work even if you do not update your code. See section “What if I have incompatibilities that I cannot change or do not want to change in my application?”
If standard objects or functions are overridden, this may cause incompatibilities with Client-Side Monitoring. This is a warning of a possible compatibility issue.
There are 2 recommended solutions for this issue
This meta tag is expected to be the first on the page right after the <!Doctype> and <html> tags. In client-side monitoring, the tag becomes positioned after the client-side monitoring injected code, so the page rendering process might run incorrectly (might slow-down the loading or have other effects).
This is a warning of a possible incompatibility, most commonly affecting the performance of your application. The recommended solution is to change your code, or exclude these pages from monitoring.
Note that the application may still work even if you do not exclude the pages. See section “What if I have incompatibilities that I cannot change or do not want to change in my application?”
This is a warning of a possible incompatibility, mostly commonly affecting the performance of your application. The recommended solution is to change your code, or exclude these pages from monitoring.
So what if I have compatibility issues in my application that I can’t do anything about? Is everything lost? No, it is still possible that Client-Side Monitoring will work. This is because the compatibility check identifies possible issues. If you test your application and determine that the application still works with CSM, it is possible to enable Client-Side monitoring.
Install Client-Side Monitoring and your application in a test or pre-production environment and pay special attention to the pages and resources identified by the compatibility check. If the application behaves normally with Client-Side Monitoring enabled, you can use it to track the end user experience.
Here is how you can test this:
To enable Client-Side Monitoring you need to run the .NET Application Performance Monitoring template. Note that you will need to enable the server-side functionality, it is not possible to only enable client-side functionality.
As you start the wizard and choose the applications that you want to monitor,
also select “enable additional configuration options for server-side and client-side monitoring”.
Select the appropriate thresholds for your application regarding performance and/or exception alerts, the appropriate thresholds. In general, client-side threshold settings should be higher than server-side threshold settings. This is because the client-side monitoring contains the server time, too. For instance, when a client-side event is divided into various parts, some of the time is spent on the server, but the client also monitors the time spent on the network and the time spent in the browser.
Note that for the ip address filter, any IP addresses that fit the filter definitions are excluded from client-side monitoring. This means that if the list is empty, all IP addresses are monitored.
If you want to exclude pages from monitoring, or if the compatibility check recommended that you do this, you can do the following
Edit the monitoring template you created, and go to the Client-Side Monitoring tab. Then click customize.
In the excluded pages section, click add, and add any page you want to exclude. This exclusion works based on identifying transactions and only works for ASP.NET.
Now as users are interacting with the application, you should be able to start to see data appearing in the Operations Manager Console.
Let me know if this information is helpful and what other types of information you would like to see for Client-Side Monitoring.