将Application Insights作为Azure应用服务扩展安装或通过NuGet安装?

时间:2018-03-20 13:39:01

标签: azure azure-application-insights azure-web-app-service

可以通过Azure应用服务中的扩展部分安装Application Insights,但也可以通过NuGet安装软件包并定义APPINSIGHTS_INSTRUMENTATIONKEY应用程序设置。你也可以做到这两点。

有什么区别?

编辑:

我发现安装扩展程序或NuGet程序包之间存在差异:

  

您可以通过以下两种方式之一检测应用来配置监控:

     

运行时 - 您可以在Web应用程序已存在时选择性能监控扩展。没有必要重建或重新安装您的应用程序。您将获得一组标准的程序包,用于监视响应时间,成功率,异常,依赖性等。

     

构建时间 - 您可以在开发中的应用程序中安装软件包。此选项更通用。除了相同的标准软件包,您还可以编写代码来自定义遥测或发送自己的遥测。您可以根据应用程序域的语义记录特定活动或记录事件。

来源:https://docs.microsoft.com/en-us/azure/application-insights/app-insights-azure-web-apps#run-time-or-build-time

但是,如果你同时做两件事怎么办?它有什么好处吗?

2 个答案:

答案 0 :(得分:3)

  

但是,如果你同时做两件事怎么办?它有什么好处吗?

  • 扩展程序检测到您的应用程序已经带来了Application Insights并且不会执行任何操作,除了删除分析器,这有助于在依赖项中收集完整的SQL语句。如果没有分析器完整的SQL语句将不会被收集,但其他一切都应该正常工作。 (如果您使用的是2.3.0或更早版本的SDK,或者如果您的应用程序的目标是旧的.NET Framework,如4.0,那么分析器也可以更好地关联依赖关系。

简而言之,从SDK的2.4.0开始,在nuget安装上安装扩展的唯一优势是在Dependency Telemetry中获取完整的SQL语句。

答案 1 :(得分:1)

  

但是,如果你同时做两件事怎么办?它有什么好处吗?

如您所知,我们可以通过NuGet安装软件包以使用Application Insights。这样,我们可以在我的代码中添加自定义遥测数据,并在Visual Studio中的应用程序洞察工具中监控遥测数据。这将非常方便。您也可以参考此article添加自定义遥测数据。

MVC项目中的代码:

 public ActionResult Index()
        {
            Trace.TraceInformation("my trace info Home/Index");
            var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
            RequestTelemetry requestTelemetry = new RequestTelemetry();
            telemetry.TrackTrace("Home/Index Main");
            telemetry.TrackPageView("Home/Index");
            return View();
        }

应用洞察工具中的遥测数据:

enter image description here

App Service 中的应用洞察,您只能看到过去24小时内的有限数据和趋势。这对您直接查看应用服务中的主要遥测数据非常方便。但如果你想了解更多细节,那不是一个好的选择。

enter image description here

最全面的监控数据和服务位于应用洞察服务中。您可以点击在应用洞察中查看更多内容'在App Service监视器扩展中去。或者您可以直接访问应用程序洞察服务。

enter image description here

应用程序洞察服务中的

时间范围(包括自定义时间范围)。

enter image description here