<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Shawn Gibbs on Application Management</title><link>http://blogs.technet.com/b/shawngibbs/</link><description>You can’t manage what you don’t monitor. Application Performance Management with AVIcode and System Center.</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>System Center .NET Application Alerts vs Events</title><link>http://blogs.technet.com/b/shawngibbs/archive/2012/04/13/system-center-net-application-alerts-vs-events.aspx</link><pubDate>Fri, 13 Apr 2012 14:26:13 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3492025</guid><dc:creator>Shawn Gibbs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/shawngibbs/rsscomments.aspx?WeblogPostID=3492025</wfw:commentRss><comments>http://blogs.technet.com/b/shawngibbs/archive/2012/04/13/system-center-net-application-alerts-vs-events.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Formulating a process to solve production application issues quickly requires a well thought out process for alerting, triaging and diagnosis issues. Whether you currently use System Center Operations Manager now or not these are still the same three buckets used to help develop a process. The eventual goal in the process should be to automate as much of the resolution process as possible but that is beyond the scope of this article, here I simply want to discuss what an APM Alert is versus what an APM Event is. Each has a place in the problem resolution process and certainly they are related and interconnected in many ways. It&amp;rsquo;s easiest to understand alerts for those familiar with Operations Manager but of course not everyone is, and in most cases events are also not well understood. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;So to set up the conversation it&amp;rsquo;s probably worth a quick review of APM in general. I usually start explaining that APM is simply automating the process of instrumenting .NET code with performance timings and exception collections. Doing something that developers would, and in some case have done to applications if given enough time and budget to do so. A bigger challenge is that if this has been done what to do with the data and did they create a method to understand this data by all the team members that need to know. In many cases it has then been left up to the operations team to filter and collect in Operations Manager via custom built Management Packs the data that is important to them and create alerts accordingly. In addition it hasn&amp;rsquo;t always included enough root cause details to solve problems are even steer diagnostics better to speed resolution. How many of us have seen event logs get over populated with events we not only don&amp;rsquo;t understand fully but tend to ignore because of the flood of information is too much. APM is much more than this but for the Alerts versus Events conversations this is enough to get use started. Let&amp;rsquo;s look at events; these are simply the detailed collection of application specific performance problems and exception events in the code. You tell the monitoring template to collect an event when the performance exceeds X milliseconds and in doing so it will include details about the performance challenge inside the event. You can also tell the template to collect exception events or what we call application failures in the code based on whether they are considered critical or not. Again depending on configurations this will include some level of detail about the code exception including parameters if so desired. Like a developer logging their own performance problems and exception events into an event log or their own database APM logs these events in an easy to use web based console for further analysis and use. But a single slow page or code failure doesn&amp;rsquo;t always mean an availability problem is arising so these events might not always create alerts. To highlight the difference here is an event log entry created by the developer of a web based application when rendering a shopping cart failed. Below is the APM event collected for the exact same failure being rendered from the AppDiagnostics console. You can see a fairly different approach to rendering the data with some similarities. The detail collected in the APM can be controlled and is collected without rewriting code, and it doesn&amp;rsquo;t rely on the developer to create the event or do anything.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;/span&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&amp;nbsp;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/6445.4_5F00_1.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/6445.4_5F00_1.png" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/8233.4_5F00_2.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/8233.4_5F00_2.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;So this actually is a great example of a developer collecting and the automated collection from Operations Manager APM. But now how and why would we alert on this event. First a couple of things around application failures that is worth noting. First is that APM will distinguish between different types of exceptions in the code and categorize them with what is referred to as Aspects. This error for example is not Connection related or Security related which are 2 of the aspects we distinguish so the event gets the aspect of &amp;lsquo;Application Failure&amp;rsquo;. This is important since we can alert differently based on this aspect. As an example operations personnel should almost always be alerted when security in a database changes, this may cause the applications database commands to fail for security reasons like not able to insert permissions. When creating an APM monitoring template we can distinguish between creating individual event alerts or only based on aspect of failure or event quantities and increases in percentage of events.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/3808.4_5F00_3.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/3808.4_5F00_3.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;As you can see we have options as to what and to what depth to collect events but also how to use these events in alerting.&amp;nbsp; We can even go to the level of transactions which simply base similar event collection and alerting on specific web pages or code functions. For example don&amp;rsquo;t trigger alerts on application failures at the site level but do trigger them for the cart page. At this point we can monitor for alerting the number of events and base an overall alert for the percent of increase since a large number of failures impacts performances. So why would you set this up this way? Imagine a public site that changes regularly which is cataloged by a search engine. The search engine would regularly refresh content by retrying the urls in its database, and the site may no longer have the url. This will actually cause a .NET exception at the site level for &amp;lsquo;File not found&amp;rsquo; which is an aspect of application failure. We don&amp;rsquo;t need an alert for &amp;lsquo;File not found&amp;rsquo; at the site level, which could be hundreds or thousands. At this point count and track them and alert if they drastically increase in a time interval. So disabling alerting on application failure at the site level prevents this potential flood of data but then what about the &amp;lsquo;applications failures we care about. We do this by adding transactions and configuring alerts for application failures at that level. So now cart.aspx is a transaction, it can&amp;rsquo;t get 404 file not found type failures because it is a page and now any aspect of application failure is important so create the alert.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/7713.4_5F00_4.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/7713.4_5F00_4.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3492025" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/AVIcode/">AVIcode</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/Monitoring/">Monitoring</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/Application+Management/">Application Management</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/SCOM+APM/">SCOM APM</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/-NET/">.NET</category></item><item><title>Application Dependencies and Chained Events</title><link>http://blogs.technet.com/b/shawngibbs/archive/2012/04/04/application-dependencies-and-chained-events.aspx</link><pubDate>Wed, 04 Apr 2012 18:57:08 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3490374</guid><dc:creator>Shawn Gibbs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/shawngibbs/rsscomments.aspx?WeblogPostID=3490374</wfw:commentRss><comments>http://blogs.technet.com/b/shawngibbs/archive/2012/04/04/application-dependencies-and-chained-events.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The question seems to come often enough around application dependency discovery with AVIcode and or SCOM APM so it&amp;rsquo;s worth a quick discussion and walk through. First let&amp;rsquo;s define for the purpose of this discussion what we mean by application discovery and application dependency. This would then allow us to talk about how to use them for monitoring as well as application diagnostics. An application dependency is simply what does the application depend on from a .NET application resource point of view. For example does this application call a soap service or does it communicate to a database? These are application function calls to recourses and can be collected and reported fairly easily. Application discovery is a lot more complex discussion and in some circles called a black art. Also for the purpose of this discussion I will be referring to System Center 2012 Operations Manager APM. Outside of ASP.NET applications application discovery requires many things like permissions and application &amp;lsquo;finger prints&amp;rsquo; for discovery to happen, Inside ASP.NET it is slightly easier to list what is installed in the IIS instance to run under what app pools. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;So let&amp;rsquo;s first talk about application discovery in Operations Manager APM, specifically .NET applications. Before monitoring can happen we need to select an application to monitor. This selection is based on the list of applications discovered using the IIS 7.0 APM management pack in Operations Manager. &amp;nbsp;Operations Manager can also allow you to discover applications of any type based on a custom management pack and custom discovery scripts, and some third party vendors have already created these for other applications. Once the discovery happens you can use the APM template wizard to create a template for application monitoring. This new template manages what application, where it is running and how we will alert and collect information from it. After applications are being monitored we will use the monitoring to collect events and performance counters. Events are made of exceptions in the code and functions performing slower than a set threshold. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Now the application dependency. This is a great diagnostics tool and even can be a great discovery tool for understanding the application. Using the monitoring that is running on the application we will listen for certain functions to be called. These functions are database calls and soap service calls. To us these are dependencies the application has. Now what do we do with these? First we treat them as resources inside of a collected event. So if a database is called inside of a poor performing web response it will be timed and counted even if it doesn&amp;rsquo;t break collection levels called sensitivity settings. See figure 1.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/6114.3_5F00_1.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/6114.3_5F00_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Figure 1&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;If they break the collection level called sensitivity level we then collect some additional detail about the call. See figure 2.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2311.3_5F00_2.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2311.3_5F00_2.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Figure 2&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Now for some magic. Since we know the calls are happening and when we shouldn&amp;rsquo;t waste this knowledge. So let&amp;rsquo;s do 2 things with it. First let&amp;rsquo;s take the fact that a function call was made and register it somewhere so we know we depend on that resource, even if there is no event collected that the call is part of. Helps map and understand the application and is useful in diagnosing problems. For example if 10 databases and data servers are used and only one is consistently part of events we can assume a problem exist with that one and not the code that calls databases. See figure 3 for an example of dependency listing.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2352.3_5F00_3.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2352.3_5F00_3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Figure 3&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;But what else can we do with this knowledge? This is a great question and a better answer. We can look at these function calls that make the calls to these dependencies and we can also look at function calls that are receive calls from dependencies in the event detail. When we see a &amp;lsquo;caller&amp;rsquo; we can then look for events that could potentially be the &amp;lsquo;callee&amp;rsquo; if we find something or bunches of multiples of something &amp;nbsp;we can run a simple logical set of &amp;ldquo;if then&amp;rdquo; type statements against them to suggest they are related in some way. Well how could they relate? So if we monitor application &amp;lsquo;A&amp;rsquo; and we see it calls a web service application &amp;lsquo;B&amp;rsquo; which is also being monitored we may get events from both that either do or don&amp;rsquo;t correlate to each other. To confirm we see &amp;lsquo;A&amp;rsquo; called at X time and date and waited Y time period with a set of parameters used, we then see that &amp;lsquo;B&amp;rsquo; has an event similar in &amp;lsquo;X&amp;rsquo;, &amp;lsquo;Y&amp;rsquo; and parameters maybe they are related. If we determine they are exactly related we can set this to a single transaction distributed chain and if not we can tell you these all are calls being made and show a multi transaction distributed chain. See figure 4 as the calling applications event details and it&amp;rsquo;s rendering in figure 5 of the single transaction distributed chain.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/0842.3_5F00_4.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/0842.3_5F00_4.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Figure 4&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/7268.3_5F00_5.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/7268.3_5F00_5.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Figure 5&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3490374" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/AVIcode/">AVIcode</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/SCOM+2012/">SCOM 2012</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/Operation+Manager/">Operation Manager</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/APM/">APM</category></item><item><title>System Center 2012 Operation Manager APM </title><link>http://blogs.technet.com/b/shawngibbs/archive/2012/03/01/system-center-2012-operation-manager-apm.aspx</link><pubDate>Thu, 01 Mar 2012 21:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3484172</guid><dc:creator>Shawn Gibbs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/shawngibbs/rsscomments.aspx?WeblogPostID=3484172</wfw:commentRss><comments>http://blogs.technet.com/b/shawngibbs/archive/2012/03/01/system-center-2012-operation-manager-apm.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;Increasing depth of details in performance events. Collecting variables on method calls.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Okay, what are all the knobs and buttons for in APM configuration? In this article I want to discuss some of the reasons for making changes to depth of collection but also some of the cost. Not cost in terms of dollar value but cost in terms of impact of the monitor on what it is monitoring. It&amp;rsquo;s very difficult to explain exactly what is this cost and/or how does it impact my application, especially since there is an endless amount of applications and scenarios. The best analogy I can give is a cars fuel tank. In the very early days of cars it was enough to simply let the driver physically look into the tank to see how much fuel they have. This worked well but for ease of use it was decided that a gauge and a sending unit will be physically installed into the tank. What was the cost of this, well the tank held just a little less fuel because of the space the new sending unit took up and this cost was well worth the convenience. What if we wanted to know more about the fuel, like the quality and octane level? We would have to add a lot more to the tank and the car and the overall benefit is now not worth the cost. With a loss in capacity and miles per gallon from extra weight we start cost more than the returned value. Would a scientist like this extra detail and information? Most likely they would, but that doesn&amp;rsquo;t make the cost any better. How does this translate to APM monitoring? Great question. Simply put the knobs and buttons are designed to control the depth of information we collect when an event triggers collection. For performance events this is when an &amp;lsquo;Entry point&amp;rsquo; into the application exceeds the &amp;lsquo;Performance event threshold&amp;rsquo; set in the template creation. The goal is to be as small of a footprint but yet still have enough information to diagnose issues. &lt;br /&gt;&lt;br /&gt;Enough philosophy and let&amp;rsquo;s talk about a real world requirement to increase depth of collection. For the purposes of this article I&amp;rsquo;ll use a SharePoint application as an example which turns out to be a great example since it acts somewhat as a black box. If I write my own .NET application I am using namespaces for my code that are most likely specific to me and/or my company. This is not entirely the case in SharePoint since it not only uses custom namespaces when it is customized but also has a set of important classes and internal namespaces that fall into the Microsoft namespaces. For information on enabling custom namespaces and monitoring custom code in SharePoint visit the blog entry from Chris Childers by clicking &lt;a href="http://blogs.technet.com/b/chrischilders/archive/2012/02/28/monitoring-sharepoint-2010-with-operations-manager-2012-apm-advanced-configuration.aspx"&gt; here&lt;/a&gt;. By default the Microsoft namespace is a disabled namespace, and should remain that way. There are several namespaces automatically disabled, including the System namespace. This is the first line of defense in preventing too much collection of detail. But sometimes we need more and within this &amp;lsquo;System&amp;rsquo; namespace there are methods or application functions that are interesting. These are already configured by default to collect extra details like variables. As an example in the System namespace, which is the main .NET namespaces there is a class for working with SQL. In that class there is a function that executes the SQL called &amp;ldquo;ExecuteReader&amp;rdquo;. This functions full name is System.Data.SqlClient.SqlCommand.ExecuteReader and it is preconfigured in APM as a resource and APM collects variables like the SQL command text being performed which is important to diagnose SQL performance problems.&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt; &lt;v:stroke joinstyle="miter" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:formulas&gt; &lt;v:f eqn="if lineDrawn pixelLineWidth 0" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="sum @0 1 0" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="sum 0 0 @1" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="prod @2 1 2" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="prod @3 21600 pixelWidth" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="prod @3 21600 pixelHeight" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="sum @0 0 1" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="prod @6 1 2" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="prod @7 21600 pixelWidth" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="sum @8 21600 0" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="prod @7 21600 pixelHeight" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;v:f eqn="sum @10 21600 0" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;o:lock aspectratio="t" v:ext="edit" xmlns:o="urn:schemas-microsoft-com:office:office"&gt; &lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape style="width: 444.75pt; height: 97.5pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_1" type="#_x0000_t75" o:spid="_x0000_i1029"&gt; &lt;v:imagedata o:title="" cropleft="3236f" cropbottom="4281f" croptop="1647f" src="file:///C:\Users\shawngib\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;![if vml=""&gt; &lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2061.APMdepth1.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2061.APMdepth1.png" /&gt;&lt;/a&gt;&lt;/![if&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;So then the question comes up, how do we know what methods in the code are important enough to grab details like variables? For most custom applications it can be rare to enable this depth. It becomes more important to expand the execution tree to see the application flow and to increase this we add namespaces to be included. Typically the execution tree will highlight challenges and usually they step down into methods already being collected like the SQL example we used earlier. So in that case nothing else from a variable point of view is helpful. For SharePoint and other Microsoft applications it becomes slightly more difficult to know what will be helpful and where is the information stored in the form of variables. One could take a test system and enable namespaces like Microsoft.SharePoint which would give more detail of application code flow, but still hides where is the variables I should care about and also may even trigger additional depth collection protection which would kick in and prevent the collection anyway. Another method is to talk to developers, but also to just collect at the higher level the events and decide as you go the depth you need. Here for example is a default configuration of a SharePoint 2010 portal page.&lt;br /&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;v:shape style="width: 468pt; height: 247.5pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_2" type="#_x0000_t75" o:spid="_x0000_i1028"&gt; &lt;v:imagedata o:title="" src="file:///C:\Users\shawngib\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;![if vml=""&gt; &lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2110.APMdepth2.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/2110.APMdepth2.png" /&gt;&lt;/a&gt;&lt;/![if&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Notice that SQL calls and WCF are interesting resources so they are by default being collected in the break the sensitivity we configured in the template, default is 100ms. These are resources because if I clicked &amp;lsquo;Resource Group View&amp;rsquo; they will be show as a total count and percentage of the overall page load. This would show a total count of SQL calls and WCF calls including the ones under the sensitivity level.&lt;br /&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;v:shape style="width: 468pt; height: 60pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_3" type="#_x0000_t75" o:spid="_x0000_i1027"&gt; &lt;v:imagedata o:title="" src="file:///C:\Users\shawngib\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;![if vml=""&gt; &lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/5861.APMdepth3.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/5861.APMdepth3.png" /&gt;&lt;/a&gt;&lt;/![if&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Good information if I&amp;rsquo;m trying to rule out SQL and WCF calls as the problem, but there is 16,982 ms of time not accounted for. So if I received this event form my production systems I would need to get more detail. For SharePoint we can cheat a little and use the knowledge AVIcode&amp;rsquo;s SharePoint monitoring to learn what is important to gather. Below you will find a list of AVIcode&amp;rsquo;s SharePoint 2007 methods that should translate into SharePoint 2010 for the most part. It may be a little time consuming you would simply add these to the template by select &amp;lsquo;add Methods &amp;hellip;&amp;rsquo;. I would even go as far as saying some may be important enough to capture at any sensitivity when part of an event so setting the sensitivity to zero for these will force the collection.&lt;br /&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;v:shape style="width: 394.5pt; height: 256.5pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_4" type="#_x0000_t75" o:spid="_x0000_i1026"&gt; &lt;v:imagedata o:title="" src="file:///C:\Users\shawngib\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png" xmlns:v="urn:schemas-microsoft-com:vml"&gt; &lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;![if vml=""&gt; &lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/8547.APMdepth4.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/8547.APMdepth4.png" /&gt;&lt;/a&gt;&lt;/![if&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;By adding the above LoadWebParts method we now see variables we can use to diagnose further but we can also see things like which web parts and list are part of this page load. Is one causing the issue?&lt;span style="mso-no-proof: yes;"&gt;&lt;v:shape style="width: 468.75pt; height: 270pt; visibility: visible; mso-wrap-style: square;" id="Picture_x0020_5" type="#_x0000_t75" o:spid="_x0000_i1025"&gt;&amp;nbsp;&lt;v:imagedata o:title="" src="file:///C:\Users\shawngib\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png" xmlns:v="urn:schemas-microsoft-com:vml"&gt;&amp;nbsp;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;![if vml=""&gt; &lt;/![if&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes;"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/0361.APMdepth5.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-01/0361.APMdepth5.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;So we have effectively increased the depth on a set of methods that will help diagnose and recreate issues so that further action can be taken if needed. We&amp;rsquo;ve done so without adding unneeded burden to the system by collecting to much information that wouldn&amp;rsquo;t speed the process up anyway.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;div class="auto-style1"&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;SharePoint 2007 Methods to collect variables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.XmlWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.XmlWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.TitleBarWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.SimpleFormWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.SimpleFormWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.SPWebPartManager.LoadWebParts&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.PageViewerWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.MembersWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ListViewWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ListViewWebPart.CreateChildControls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ListFormWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ListFormWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ImageWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.DataViewWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.DataViewWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.CustomPropertyToolPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ContentEditorWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ChartViewWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.ChartViewWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.BlogAdminWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebPartPages.AggregationWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.WebControls.TopologyViewWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Search.Internal.WebControls.SearchSummaryWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Search.Internal.WebControls.SearchSummaryWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Search.Internal.WebControls.SearchStatsWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Search.Internal.WebControls.SearchStatsWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Search.Internal.WebControls.SearchPagingWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Search.Internal.WebControls.SearchPagingWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.WebPartLoc.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.WebPartLoc.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.WSRPConsumerWebPart.Render&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.ThisWeekInPicturesWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.ThisWeekInPicturesWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.SPSlicerChoicesWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.RelatedGroupsWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.PrivacyItemViewer.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.KpiRenderer.getKpiData&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.KPIListWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.KPIListWebPart.GetCallbackResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.IndicatorWebpart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.IndicatorWebpart.GetCallbackResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.GroupDetailWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.FilterValuesPickerDialog.OnLoad&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.ContactFieldControl.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.BusinessDataWebPart.GetCallbackResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.BusinessDataListWebPart.CreateChildControls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.CreateChildControls&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.BusinessDataActionsWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.ApplyFiltersWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Portal.WebControls.ApplyFiltersWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Meetings.PageTabsWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.SharePoint.Meetings.CustomToolPaneManager.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.WebControls.SearchSummaryWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.WebControls.SearchSummaryWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.WebControls.SearchStatsWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.WebControls.SearchStatsWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.WebControls.SearchPagingWebPart.RenderWebPart&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.WebControls.SearchPagingWebPart.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.Query.KeywordQuery.Execute&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.Search.Query.FullTextSqlQuery.Execute&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.WebService.WebServiceSystemUtility.ExecuteStatic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbSystemUtility.ExecuteStatic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.ExecuteInternal&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Excel.WebUI.InternalEwr.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: white;"&gt;&lt;span style="font-size: 8.0pt; mso-bidi-font-size: 10.0pt; color: black;"&gt;Microsoft.Office.Excel.WebUI.ExcelWebRenderer.OnPreRender&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 9.0pt; mso-bidi-font-size: 11.0pt; line-height: 115%;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3484172" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/System+Center+2012+Operation+Manager+APM+SharePoint/">System Center 2012 Operation Manager APM SharePoint</category></item><item><title>New AVIcode version released and the top new features</title><link>http://blogs.technet.com/b/shawngibbs/archive/2011/02/01/new-avicode-version-released-and-the-top-new-features.aspx</link><pubDate>Tue, 01 Feb 2011 18:44:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3384220</guid><dc:creator>Shawn Gibbs</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/shawngibbs/rsscomments.aspx?WeblogPostID=3384220</wfw:commentRss><comments>http://blogs.technet.com/b/shawngibbs/archive/2011/02/01/new-avicode-version-released-and-the-top-new-features.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: black; font-size: 12pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-no-proof: yes;"&gt;In December 2010 AVIcode released version 5.7 of Intercept Studio. Some of the hot new features are: &lt;br /&gt;-added built in support for .NET 4.0 framework and MVC style applciations&lt;br /&gt;-the ability to manage event state and create rules to manage events&lt;br /&gt;-and a web application scanner which analyzes your site for the gotchas that may happen when using AVICode uX user health monitoring.&lt;/span&gt;&lt;/p&gt;...(&lt;a href="http://blogs.technet.com/b/shawngibbs/archive/2011/02/01/new-avicode-version-released-and-the-top-new-features.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3384220" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/AVIcode/">AVIcode</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/New+Features/">New Features</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/-NET+4-0/">.NET 4.0</category><category domain="http://blogs.technet.com/b/shawngibbs/archive/tags/MVC/">MVC</category></item></channel></rss>