{"id":253,"date":"2014-12-10T23:27:46","date_gmt":"2014-12-10T23:27:46","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/2014\/12\/10\/updated-application-insights-status-monitor-to-support-12-and-later-application-insights-sdk\/"},"modified":"2022-05-26T01:43:48","modified_gmt":"2022-05-26T09:43:48","slug":"updated-application-insights-status-monitor-to-support-12-and-later-application-insights-sdk","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/updated-application-insights-status-monitor-to-support-12-and-later-application-insights-sdk\/","title":{"rendered":"Updated Application Insights Status Monitor to support .12 (and later) Application Insights SDK"},"content":{"rendered":"<p>The latest release of the Application Insights Status Monitor tool provides an update to the runtime instrumentation agent, which is a component of Application Insights that automatically discovers your code dependencies like SQL databases, other HTTP endpoints and Azure storage accounts.\u00a0 This new runtime instrumentation agent requires your application to use the .12 (or later) Application Insights SDK available <a href=\"http:\/\/www.nuget.org\/packages\/Microsoft.ApplicationInsights.Web\/0.12.0-build17386\">here<\/a>.\u00a0\u00a0 The latest version of the Application Insights Status Monitor tool is available to install <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkID=506648\">here<\/a>.\u00a0 Follow either of these steps to update your application from a previous version of the Application Insights SDK to the .12 SDK version.<\/p>\n<p>1&#46; If your application onboarded to Application Insights from Visual Studio 2013 Update 3 or later then right click on the ApplicationInsights.config file in Solution Explorer and choose <strong>Update Application Insights<\/strong>.<\/p>\n<p><img decoding=\"async\" title=\"image\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/0550.image_thumb_7B144312.png\" width=\"456\" height=\"506\" \/><\/p>\n<p>2&#46; If your application was onboarded to Application Insights using the Application Insights Status Monitor configuration tool, make sure you have the latest version of the Application Insights Status Monitor installed then choose <strong>Remove<\/strong> and then <strong>Add Application Insights<\/strong> as shown in the below screenshots.<\/p>\n<p>Remove:<\/p>\n<p><img decoding=\"async\" title=\"clip_image004\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"clip_image004\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/3527.clip_image004_thumb_6454FB89.jpg\" width=\"789\" height=\"311\" \/><\/p>\n<p>Add Application Insights:<\/p>\n<p><img decoding=\"async\" title=\"clip_image006\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"clip_image006\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/1070.clip_image006_thumb_71BB0E8F.jpg\" width=\"791\" height=\"342\" \/><\/p>\n<p>\u00a0<\/p>\n<p>One of the changes made in the .12 version of the <a href=\"http:\/\/www.nuget.org\/packages\/Microsoft.ApplicationInsights.Web\/0.12.0-build17386\">Application Insights for Web Applications<\/a> SDK is the collection of the following Windows performance counters.\u00a0 These Windows performance counters are automatically configured to be collected and sent to the Application Insights service every 1 min.\u00a0<\/p>\n<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          % Process CPU\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          The percentage of elapsed time of all process threads used by the processor to execution instructions for the applications process.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          Available Memory\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Physical memory immediately available for a process or for system use.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          ASP.NET request rate\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Rate of all requests to the application per second from ASP.NET.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          Exception rate\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Exceptions thrown per second.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          Process private bytes\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Memory exclusively assigned to the monitored application&#8217;s processes.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          Process IO rate\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Total bytes per second read and written to files, network and devices.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          ASP.NET Request execution time\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Execution time of the most recent request.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          ASP.NET Requests in application queue\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          Length of the application request queue.\n        <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"189\">\n<p>\n          % Processor time\n        <\/p>\n<\/td>\n<td valign=\"top\" width=\"554\">\n<p>\n          The percentage of time that the processor spends in non-Idle threads.\n        <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n<p>Performance counters and code dependencies can be viewed and explored from the Metrics Explorer:<\/p>\n<p><img decoding=\"async\" title=\"clip_image008\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"clip_image008\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/0728.clip_image008_thumb_1412A409.jpg\" width=\"718\" height=\"538\" \/><\/p>\n<p>\u00a0<\/p>\n<p>There are 2 steps required to ensure these Windows performance counters are collected and sent to the Application Insights service along with other telemetry:<\/p>\n<p>1&#46; ensure your web application is using the .12 version of the <a href=\"http:\/\/www.nuget.org\/packages\/Microsoft.ApplicationInsights.Web\/0.12.0-build17386\">Application Insights for Web Applications<\/a> SDK<\/p>\n<p>2&#46; ensure your web application ASP.NET worker process identity has the right Windows privileges to read Windows performance counters.\u00a0 This usually means adding the ASP.net worker process into the local \u201cPerformance Monitor Users\u201d group.\u00a0 Installing the latest version of the Application Insights Status Monitor will attempt to make the required change based on the ASP.NET worker process identity used.\u00a0\u00a0<\/p>\n<p>\u00a0<\/p>\n<p><strong>Additional notes:<\/strong><\/p>\n<ul>\n<li>There are cases where you may see the following warning message.\u00a0 In this case you may need to check the ASP.NET worker process identity and manually add it to the servers local \u201cPerformance Monitor Users\u201d group.<\/li>\n<\/ul>\n<blockquote>\n<p><img decoding=\"async\" title=\"image\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/6281.image_thumb_5A8F9411.png\" width=\"473\" height=\"94\" \/><\/p>\n<p>First check to see what identity your ASP.NET worker process is running under.\u00a0 Eg. in this case the FF-Extranet-Prod application pool is running under an identity called: AppPoolUser<\/p>\n<p><img decoding=\"async\" title=\"image\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/8357.image_thumb_47979EA6.png\" width=\"875\" height=\"472\" \/><\/p>\n<p>Next add this identity to the \u201cPerformance Monitor Users\u201d group.<\/p>\n<p><img decoding=\"async\" title=\"image\" style=\"border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/12\/2821.image_thumb_650C8063.png\" width=\"766\" height=\"452\" \/><\/p>\n<\/blockquote>\n<ul>\n<li>Windows performance counters will not be collected if your application is deployed on a Windows Azure Website.\u00a0 Support for this scenario is on the backlog.<\/li>\n<li>\n<p>To stop collecting these Windows performance counters remove the following line from the ApplicationInsights.config file:<\/p>\n<\/li>\n<li>\n<p><Add Type=\"Microsoft.ApplicationInsights.Extensibility.PerfCollector.PerformanceCollectorModule, Microsoft.ApplicationInsights.Extensibility.PerfCollector\" \/><\/p>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The latest release of the Application Insights Status Monitor tool provides an update to the runtime instrumentation agent, which is a component of Application Insights that automatically discovers your code dependencies like SQL databases, other HTTP endpoints and Azure storage accounts.\u00a0 This new runtime instrumentation agent requires your application to use the .12 (or later) [&hellip;]<\/p>\n","protected":false},"author":132,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[224,1],"tags":[],"class_list":["post-253","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-devops"],"acf":[],"blog_post_summary":"<p>The latest release of the Application Insights Status Monitor tool provides an update to the runtime instrumentation agent, which is a component of Application Insights that automatically discovers your code dependencies like SQL databases, other HTTP endpoints and Azure storage accounts.\u00a0 This new runtime instrumentation agent requires your application to use the .12 (or later) [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/132"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}