使用 Application Insights 探查实时 Azure 应用服务应用

可以在使用基本服务层级或更高层级的 Azure 应用服务上运行的 ASP.NET 和 ASP.NET Core 应用中运行 Profiler。

为应用启用 Profiler

若要为应用启用 Profiler,请遵循下面的说明。 如果你在运行另一种类型的 Azure 服务,则下面提供了用于在其他受支持平台上启用 Profiler 的说明:

Application Insights Profiler 是作为应用服务运行时的一部分预先安装的。 下面的步骤将说明如何为应用服务启用它。 即使在生成时已在应用程序中包含了 App Insights SDK,也应该执行这些步骤。

注意

Application Insights Profiler 的无代码安装遵循 .NET Core 支持策略。 若要详细了解支持的运行时,请参阅 .Net Core 支持策略

  1. 导航到应用服务的 Azure 控制面板。

  2. 为应用服务启用“Always On”设置。 可以在“设置”、“配置”页(见下一步中的屏幕截图)下找到此设置,然后选择“常规设置”选项卡。

  3. 导航到“设置”>“Application Insights”页面。

    Enable App Insights on App Services portal

  4. 按窗格中的说明创建新资源,或者选择现有的 App Insights 资源,以便监视应用。 此外,请确保 Profiler 已启用。 如果 Application Insights 资源位于与应用服务不同的订阅中,则无法使用此页来配置 Application Insights。 你仍然可以通过手动创建所需的应用设置来手动执行此操作。 下一部分包含有关手动启用 Profiler 的说明。

    Add App Insights site extension

  5. 现已使用应用服务应用设置启用了 Profiler。

    App Setting for Profiler

手动或使用 Azure 资源管理器启用 Profiler

可以通过为 Azure 应用服务创建应用设置来启用 Application Insights Profiler。 包含如上所示选项的页面将为你创建这些应用设置。 但是,也可以使用模板或其他方式自动创建这些设置。 如果 Application Insights 资源与 Azure 应用服务位于不同的订阅中,这些设置也将起作用。 下面是启用 Profiler 所需的设置:

应用设置
APPINSIGHTS_INSTRUMENTATIONKEY Application Insights 资源的 iKey
APPINSIGHTS_PROFILERFEATURE_VERSION 1.0.0
DiagnosticServices_EXTENSION_VERSION ~3

可以使用 Azure 资源管理器模板Azure PowerShellAzure CLI 设置这些值。

为中国云启用 Profiler

如果要为中国云启用 Profiler,可以使用以下应用设置。

应用设置 中国云
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.azure.cn

启用 Azure Active Directory 身份验证以引入配置文件

Application Insights Profiler 支持用于配置文件引入的 Azure AD 身份验证。 这意味着,要引入应用程序的所有配置文件,你的应用程序必须经过身份验证并向 Profiler 代理提供所需的应用程序设置。

到目前为止,只有当你应用程序中使用 Application Insights Profiler 来引用和配置 Azure AD 时,Profiler 才支持 Azure AD 身份验证。

你可以在下面找到为配置文件引入启用 Azure AD 所需的所有步骤:

  1. 创建你要用于对 Application Insights 资源进行身份验证的托管标识并将其添加到你的应用服务。

    a. 对于系统分配的托管标识,请参阅以下文档

    b. 对于用户分配的托管标识,请参阅以下文档

  2. 在 Application Insights 资源中配置和启用 Azure AD。

  3. 添加以下应用程序设置,用于让 Profiler 代理知道要使用哪个托管标识:

对于系统分配的标识:

应用设置
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD

对于用户分配的标识:

应用设置
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Authorization=AAD;ClientId={用户分配的标识的客户端 ID}

禁用 Profiler

若要为单个应用实例停止或重启 Profiler,请选择左侧边栏上的“WebJobs”,然后停止名为“ApplicationInsightsProfiler3”的 Web 作业。

Disable Profiler for a web job

建议在所有应用上都启用 Profiler,以便尽早发现任何性能问题。

使用 WebDeploy 将更改部署到 Web 应用程序时可能会删除 Profiler 的文件。 可以通过在部署期间排除 App_Data 文件夹的删除来防止发生这种删除。

后续步骤