视频讲解:

请观看B站视频:https://www.bilibili.com/video/av88708482/

或本站视频(内容相同,二选一即可)

 

Application Insights 能干什么?

 

监视网站的可用性、性能和使用情况;

还可以快速确定并诊断应用程序中的错误,而无需等待用户报告这些错误;

提供用户数据的分析,用户,会话,事件等等;

Application Insights 提供服务器端监视和客户端/浏览器端监视功能;

默认数据保留90天,还有支持实时流数据上报(时延低至1秒,不保留数据);

增加自定义埋点(自定义的指标);

 

Application Insights 怎么使用?

 

服务端SDK:ASP.Net Core, ASP.NET, Java, Node.js, Azure app service, Azure Cloud Service.

客户端SDK: js SDK

 

 

查看数据及使用数据

https://docs.azure.cn/zh-cn/azure-monitor/app/app-insights-overview

大概有两大类:

1.数据在Azure 相关的Poratal 中直接查看;

2.将数据导出来,然后进行查阅,分析,机器学习。

 

若要启用实时指标流,除了标准 Application Insights 包之外,还需要 Microsoft.ApplicationInsights.PerfCounterCollector

 

高级用法-自定义指标

自定义指标需要服务器端的支持,具体参见:

https://docs.azure.cn/zh-cn/azure-monitor/app/api-custom-events-metrics

 

视频案例,对现有网站通过js sdk 进行监控

 

1.创建Application Insights 实例;

 

 

部署完成,注意检测密钥,后续步骤中要使用

 

 

2.在现有的网站中集成 js SDK;

 

直接使用 Application Insights 来检测网页:只需将此代码片段粘贴到每个页面的顶部即可, 最好是将它用作 <head> 节中的第一个脚本,以便它可以监视所有依赖项存在的任何潜在问题。

 

如果使用的是 Blazor Server 应用,请在文件 _Host.cshtml 的顶部 <head> 部分中添加代码片段。

<script type="text/javascript">
var sdkInstance="appInsightsSDK";window[sdkInstance]="appInsights";var aiName=window[sdkInstance],aisdk=window[aiName]||function(e){function n(e){t[e]=function(){var n=arguments;t.queue.push(function(){t[e].apply(t,n)})}}var t={config:e};t.initialize=!0;var i=document,a=window;setTimeout(function(){var n=i.createElement("script");n.src=e.url||"https://az416426.vo.msecnd.net/scripts/b/ai.2.min.js",i.getElementsByTagName("script")[0].parentNode.appendChild(n)});try{t.cookie=i.cookie}catch(e){}t.queue=[],t.version=2;for(var r=["Event","PageView","Exception","Trace","DependencyData","Metric","PageViewPerformance"];r.length;)n("track"+r.pop());n("startTrackPage"),n("stopTrackPage");var s="Track"+r[0];if(n("start"+s),n("stop"+s),n("setAuthenticatedUserContext"),n("clearAuthenticatedUserContext"),n("flush"),!(!0===e.disableExceptionTracking||e.extensionConfig&&e.extensionConfig.ApplicationInsightsAnalytics&&!0===e.extensionConfig.ApplicationInsightsAnalytics.disableExceptionTracking)){n("_"+(r="onerror"));var o=a[r];a[r]=function(e,n,i,a,s){var c=o&&o(e,n,i,a,s);return!0!==c&&t["_"+r]({message:e,url:n,lineNumber:i,columnNumber:a,error:s}),c},e.autoExceptionInstrumented=!0}return t}(
{
  instrumentationKey:"INSTRUMENTATION_KEY"
}
);window[aiName]=aisdk,aisdk.queue&&0===aisdk.queue.length&&aisdk.trackPageView({});
</script>

划重点,注意:中国区Azure 终结点要记得更换!

具体参见:https://docs.azure.cn/zh-cn/azure-monitor/app/custom-endpoints#javascript

 

区域 终结点名称 Value
Azure 中国 遥测通道 https://dc.applicationinsights.azure.cn/v2/track
Azure 中国 实时指标 https://live.applicationinsights.azure.cn/QuickPulseService.svc
Azure 中国 配置文件查询 https://dc.applicationinsights.azure.cn/api/profiles/{0}/appId

 

修改后如下:

<script type="text/javascript">
    var sdkInstance="appInsightsSDK";window[sdkInstance]="appInsights";var aiName=window[sdkInstance],aisdk=window[aiName]||function(e){function n(e){t[e]=function(){var n=arguments;t.queue.push(function(){t[e].apply(t,n)})}}var t={config:e};t.initialize=!0;var i=document,a=window;setTimeout(function(){var n=i.createElement("script");n.src=e.url||"https://az416426.vo.msecnd.net/scripts/b/ai.2.min.js",i.getElementsByTagName("script")[0].parentNode.appendChild(n)});try{t.cookie=i.cookie}catch(e){}t.queue=[],t.version=2;for(var r=["Event","PageView","Exception","Trace","DependencyData","Metric","PageViewPerformance"];r.length;)n("track"+r.pop());n("startTrackPage"),n("stopTrackPage");var s="Track"+r[0];if(n("start"+s),n("stop"+s),n("setAuthenticatedUserContext"),n("clearAuthenticatedUserContext"),n("flush"),!(!0===e.disableExceptionTracking||e.extensionConfig&&e.extensionConfig.ApplicationInsightsAnalytics&&!0===e.extensionConfig.ApplicationInsightsAnalytics.disableExceptionTracking)){n("_"+(r="onerror"));var o=a[r];a[r]=function(e,n,i,a,s){var c=o&&o(e,n,i,a,s);return!0!==c&&t["_"+r]({message:e,url:n,lineNumber:i,columnNumber:a,error:s}),c},e.autoExceptionInstrumented=!0}return t}(
    {
      instrumentationKey:"INSTRUMENTATION_KEY",
      endpointUrl: "https://dc.applicationinsights.azure.cn/v2/track"
    }
    );window[aiName]=aisdk,aisdk.queue&&0===aisdk.queue.length&&aisdk.trackPageView({});
</script>

检查浏览器请求

 

3.从Portal 查阅数据;

此过程可能需要几分钟的时间,才能查阅多种数据

 

查阅用户相关的数据:

查看性能(服务器和浏览器),本例中,只使用了JS SDK,故而只能查阅浏览器性能

 

设置指标并查看

 

默认的仪表盘版

查看仪表板

 

4.将数据导出到Storage,供之后的分析,机器学习用。

设置导出的Storage账号

在Storage中查阅使用数据