在 Linux 上为 .NET启用 Azure Monitor OpenTelemetry Profiler 预览版

Important

Azure Monitor适用于 .NET 的 OpenTelemetry Profiler 目前为预览版。 有关适用于测试版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

Azure Monitor OpenTelemetry Profiler Preview for .NET 可跟踪正在运行的 ASP.NET Core Web 应用中每个方法的运行时长,以便精准定位导致性能下降的代码路径。

本文介绍如何为托管在 Azure 应用服务 Linux 环境中的 ASP.NET Core Web 应用启用适用于 .NET 的 Azure Monitor OpenTelemetry 分析器预览版。 还可以在 Windows 和 macOS 开发环境中设置示例项目。

在本文中,您可以:

  • 在本地计算机上设置托管在 Linux 上的 ASP.NET Core Web 应用。
  • 使用 Azure 门户创建应用服务。
  • 使用本地 Git 将本地 ASP.NET Core项目部署到Azure。
  • 将.NET探查器添加到 ASP.NET Core Web 应用。

注释

查看适用于 SDK 支持策略的 Application Insights SDK 支持指南 。 有关迁移指南,请参阅从 Application Insights SDKs 迁移到 Azure Monitor OpenTelemetry

注意

对于新应用程序,请使用 Azure Monitor OpenTelemetry Distro。 它提供与 Application Insights SDK 类似的体验和可比功能。 若要迁移到基于 OpenTelemetry 的产品/服务,请查看 迁移指南

先决条件

在本地设置项目

在本地计算机上创建示例 ASP.NET Core Web 应用,并添加收集探查器跟踪的 NuGet 包。

  1. 在计算机上打开命令提示符窗口。

  2. 创建 ASP.NET Core MVC Web 应用。

    dotnet new mvc -n LinuxProfilerTest
    
  3. 将工作目录切换到项目的根文件夹。

  4. 添加 NuGet 包以收集探查器跟踪。

    dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore --prerelease
    dotnet add package Azure.Monitor.OpenTelemetry.Profiler --prerelease
    

启用.NET探查器

将您的应用程序配置为收集性能分析器跟踪数据。 选择要使用的产品/服务的选项卡。

  1. 在您首选的代码编辑器中,验证是否已将 Azure Monitor OpenTelemetry Profiler 的这两个包添加到 .NET 代码的指定位置 Program.cs添加自定义探查器设置(如果适用)。

    在项目的 .csproj 文件中,验证是否已添加以下行:

    <ItemGroup>
        <PackageReference Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="[1.*-*, 2.0.0)" />
        <PackageReference Include="Azure.Monitor.OpenTelemetry.Profiler" Version="[1.*-*, 2.0.0)" />
    </ItemGroup>
    

    在你的文件Program.cs中,验证是否已添加以下行:

    using Azure.Monitor.OpenTelemetry.AspNetCore;
    using Azure.Monitor.OpenTelemetry.Profiler;
    
    ///
    
    builder.Services.AddOpenTelemetry()
        .UseAzureMonitor()          // Enable Azure Monitor OpenTelemetry distro for ASP.NET Core
        .AddAzureMonitorProfiler(); // Add Azure Monitor Profiler
    
  2. 保存并提交对本地存储库的更改:

    git init
    git add .
    git commit -m "first commit"
    

创建用于托管项目的 Linux Web 应用

在 Linux 上创建应用服务 Web 应用来托管项目,并设置本地 Git 部署凭据。

  1. Azure 门户中,搜索并选择 App Services,然后选择 create>Web App

  2. 使用 Linux 上的应用服务 创建 Web 应用环境。

    显示创建 Linux Web 应用的屏幕截图。

  3. 转到新的 Web 应用资源。 在左侧菜单中,选择 “部署>部署中心”,然后选择 “FTPS 凭据 ”以创建部署凭据。 记下你的凭据以供稍后使用。

    显示创建部署凭据的屏幕截图。

  4. 选择“保存”。

  5. 选择“设置”选项卡。

  6. 若要在 Web 应用中设置本地 Git 存储库,请选择 “源”,然后选择“ 本地 Git”。

    显示下拉菜单中的部署选项的屏幕截图。

  7. 选择“保存”以使用 Git Clone URI 创建 Git 存储库。

    显示设置本地 Git 存储库的屏幕截图。

将项目部署到Azure 应用服务

可以通过多种方式将代码部署到Azure 应用服务。 最简单的方法是使用本地 Git 进行部署。 有关详细信息,请参阅 使用本地 Git 部署到 Azure 应用服务

  1. 在命令提示符窗口中,浏览到项目的根文件夹。 添加 Git 远程存储库以指向应用服务上的存储库:

    git remote add azure https://<username>@<app_name>.scm.chinacloudsites.cn:443/<app_name>.git
    

    对于此值,请转到 Web 应用的 “概述 ”页。 复制 Git 克隆 URL

  2. 通过将更改推送到Azure 应用服务来部署项目:

    git push azure main
    

添加 Application Insights 来监视 Web 应用

若要查看探查器跟踪,请将 Web 应用连接到 Application Insights 资源。 如果在创建应用服务时启用 Application Insights,Azure会自动设置连接字符串。 否则,请使用以下方法之一来设置连接字符串。 选择要使用的产品/服务的选项卡。

从 Application Insights 资源中复制并粘贴“连接字符串”来监视您的 Web 应用。

  1. 复制连接字符串
  2. 将连接字符串粘贴到环境中

排查缺少探查器跟踪的问题

如果你的 Application Insights 资源中未显示 Profiler 跟踪,请使用适用于你的产品/服务的故障排除指南。 选择要使用的产品/服务的选项卡。

如果找不到应用中的跟踪,请尝试本 故障排除指南中的步骤。

后续步骤