c# - 适用于本地 Web 应用的 Azure Application Insight 遥测
问题描述
我按照这篇Microsoft 文章设置了使用 Azure 的 Application Insights在IIS上运行的本地.NET 应用程序。它一直运行良好。
据我了解,这是一种非侵入式、无代码的监控方法,旨在添加到已在生产中部署和运行的应用程序中。
然后我看到了这篇关于AddApplicationInsightsTelemetry的文章。它表明这是对 .NET Core 应用程序的代码库监控所必需的。
当我四处寻找两种方法之间的区别时,我有点困惑,这是否意味着它们都真的做同样的事情并且AddApplicationInsightsTelemetry()
只需要.NET Core?
我是否需要将其添加到我的 Web .NET 应用程序中,因为使用的一个子组件是使用 .NET Core 编写的?
解决方案
有 2 种方法可以为应用程序启用 Application Insights:
- 无代码方法 - 通常在应用程序已部署并运行(在 Azure 或本地)时使用。这种方法不需要修改源代码。可用的定制有限。
Azure Web Apps for Asp.Net 和 Asp.Net Core 应用程序支持无代码方法。( https://docs.microsoft.com/en-us/azure/azure-monitor/app/azure-web-apps?tabs=net ) 即将支持其他语言,如 Java、Node.Js、Python。
Azure VM for Asp.Net 支持无代码方法 ( https://docs.microsoft.com/en-us/azure/azure-monitor/app/azure-vm-vmss-apps )
Asp.Net Apps 的任何本地服务器都支持无代码方法。( https://docs.microsoft.com/en-us/azure/azure-monitor/app/status-monitor-v2-overview )
- 基于代码的方法 - 使用的源代码是可访问的,通常涉及添加一个 nuget 包(在 .NET 世界中)和 1-2 行代码。这提供了最大程度的自定义以及发送自定义遥测的能力。它在实际应用程序的运行位置几乎无关紧要 - 它可以在 Azure 或 On-Prem 或任何地方。
如果你有一个 Asp.Net Core 应用程序,那么唯一支持无代码方法的地方就是 Azure Web 应用程序。对于其他所有地方,您需要基于代码的方法 ( https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core )
如果您有 Asp.Net 应用程序,Azure Web Apps、Azure VMs、On-Prem 支持无代码。如果要自定义遥测集合,您仍然可以使用基于代码的方法 ( https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net )。
推荐阅读
- javascript - 我一直使用 history.push() 重定向到“/聊天”我试图让用户为空但卡住了
- c++ - 编译器使用 -O2 优化错误地删除了一条指令,这段代码中是否有任何未定义的行为?
- node.js - 你能用 node + express 获取请求源完整路径吗
- python - 线程输出未按预期进行
- python - 将 vaex 数据框加载到破折号数据表
- maven - 如何使用 eclipse 在 quarkus 应用程序中调试 apache 骆驼路由
- html - 固定导航栏在大型显示器上延伸太远
- sql - SQL 根据其他两列选择值
- javascript - 如何在我的其他组件中获取或查看 prop 值?
- java - 给定存储两个数字的数字的 LinkedList,将这些数字相加