你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将分布式跟踪与 Azure Spring Apps 配合使用(已弃用)

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

注意

分布式跟踪已弃用。 有关详细信息,请参阅 Azure Spring Apps 中的 Application Insights Java 进程内代理

使用 Azure Spring Apps 中的分布式跟踪工具,可以轻松地调试和监视复杂问题。 Azure Spring Apps 将 Spring Cloud Sleuth 与 Azure 的 Application Insights 集成。 这种集成可以通过 Azure 门户提供强大的分布式跟踪功能。

本文介绍如何启用 .NET Core Steeltoe 应用以使用分布式跟踪。

先决条件

若要完成这些过程,需要一个已准备部署到 Azure Spring Apps 的 Steeltoe 应用。

依赖项

对于 Steeltoe 2.4.4,请添加以下 NuGet 包:

对于 Steeltoe 3.0.0,请添加以下 NuGet 包:

更新 Startup.cs

  1. 对于 Steeltoe 2.4.4,请在 ConfigureServices 方法中调用 AddDistributedTracingAddZipkinExporter

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDistributedTracing(Configuration);
        services.AddZipkinExporter(Configuration);
    }
    

    对于 Steeltoe 3.0.0,请 ConfigureServices 在方法中调用 AddDistributedTracing

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDistributedTracing(Configuration, builder => builder.UseZipkinWithTraceOptions(services));
    }
    
  2. 对于 Steeltoe 2.4.4,请 Configure 在方法中调用 UseTracingExporter

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
         app.UseEndpoints(endpoints =>
         {
             endpoints.MapControllers();
         });
         app.UseTracingExporter();
    }
    

    对于 Steeltoe 3.0.0,不需要在 Configure 方法中进行任何更改。

更新配置

将以下设置添加到在 Azure Spring Apps 中运行应用时将使用的配置源:

  1. management.tracing.alwaysSample 设置为 true。

  2. 如果要查看在 Eureka 服务器、配置服务器和用户应用之间发送的跟踪跨度,请将 management.tracing.egressIgnorePattern 设置为 "/api/v2/spans|/v2/apps/. /permissions|/eureka/. |/oauth/.*"。

例如,appsettings.json 将包括以下属性:

"management": {
    "tracing": {
      "alwaysSample": true,
      "egressIgnorePattern": "/api/v2/spans|/v2/apps/.*/permissions|/eureka/.*|/oauth/.*"
    }
  }

有关 .NET Core Steeltoe 应用中的分布式跟踪的详细信息,请参阅 Steeltoe 文档中的分布式跟踪

在本文中,学习如何:

  • 在 Azure 门户中启用分布式跟踪。
  • 将 Spring Cloud Sleuth 添加到应用程序。
  • 查看 Spring 应用程序的依赖项映射。
  • 通过不同的筛选器搜索跟踪数据。

先决条件

若要完成这些过程,需要一个已预配且正在运行的 Azure Spring Apps 服务。 请完成在 Azure Spring Apps 中部署第一个 Spring Boot 应用快速入门,以预配和运行 Azure Spring Apps 服务。

添加依赖项

  1. 将以下行添加到 application.properties 文件:

    spring.zipkin.sender.type = web
    

    完成此更改后,Zipkin 发送方就可以将内容发送到 Web。

  2. 如果已按 Azure Spring Apps 中的应用程序准备指南进行了操作,则可跳过此步骤。 否则,请转到本地开发环境并编辑 pom.xml 文件,以添加以下 Spring Cloud Sleuth 依赖项:

    • Spring Boot 版本 < 2.4.x。

      <dependencyManagement>
          <dependencies>
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-sleuth</artifactId>
                  <version>${spring-cloud-sleuth.version}</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencies>
      </dependencyManagement>
      <dependencies>
          <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-sleuth</artifactId>
          </dependency>
          <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-zipkin</artifactId>
          </dependency>
      </dependencies>
      
    • Spring Boot 版本 >= 2.4.x。

      <dependencyManagement>
          <dependencies>
            <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-sleuth</artifactId>
                  <version>${spring-cloud-sleuth.version}</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencies>
      </dependencyManagement>
      <dependencies>
          <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-sleuth</artifactId>
          </dependency>
          <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-sleuth-zipkin</artifactId>
           </dependency>
      </dependencies>
      
  3. 再次为 Azure Spring Apps 服务执行生成和部署操作,使之反映这些更改。

修改采样率

可以通过修改采样率,更改遥测数据收集速率。 例如,如果要按平常一半的频率采样,请打开 application.properties 文件并更改以下行:

spring.sleuth.sampler.probability=0.5

如果已生成并部署应用程序,则可修改采样率。 为此,可在 Azure CLI 或 Azure 门户中添加上一行作为环境变量。

启用 Application Insights

  1. 转到 Azure 门户中的 Azure Spring Apps 服务页面。
  2. 在“监视”页上,选择“分布式跟踪”。
  3. 选择“编辑设置”,以便编辑现有设置或添加新设置。
  4. 新建一个 Application Insights 查询,或选择一个现有的。
  5. 选择要监视哪个日志记录类别,并指定保留时间(天)。
  6. 选择“应用”以应用新跟踪。

查看应用程序映射

返回到“分布式跟踪”页面,选择“查看应用程序映射”。 查看应用程序和监视设置的视觉表现形式。 若要了解如何使用应用程序,请参阅应用程序映射:会审分布式应用程序

使用搜索函数查询其他特定的遥测项。 在“分布式跟踪”页面上,选择“搜索”。 有关如何使用搜索函数的详细信息,请参阅在 Application Insights 中使用搜索

使用 Application Insights

除了应用程序映射和搜索功能,Application Insights 还提供监视功能。 在 Azure 门户中搜索应用程序的名称,然后打开 Application Insights 页面来查找监视信息。 有关如何使用这些工具的更多指南,请查看 Azure Monitor 日志查询

禁用 Application Insights

  1. 转到 Azure 门户中的 Azure Spring Apps 服务页面。
  2. 在“监视”部分,选择“分布式跟踪”。
  3. 选择“禁用”,禁用 Application Insights。

后续步骤

本文介绍了如何在 Azure Spring Apps 中启用并了解分布式跟踪。 若要了解如何将服务绑定到应用程序,请参阅将 Azure Cosmos DB 数据库绑定到 Azure Spring Apps 中的应用程序