Uso del seguimiento distribuido con Azure Spring Cloud (en desuso)

Nota

El seguimiento distribuido está en desuso. Para más información, consulte Agente In-Process de Java de Application Insights en Azure Spring Cloud.

Con las herramientas de seguimiento distribuido de Azure Spring Cloud, puede depurar y supervisar fácilmente problemas complejos. Azure Spring Cloud integra Spring Cloud Sleuth con Application Insights de Azure. Esta integración proporciona una funcionalidad eficaz de seguimiento distribuido desde Azure Portal.

En este artículo, aprenderá a habilitar una aplicación Steeltoe de .NET Core para usar el seguimiento distribuido.

Requisitos previos

Para seguir estos procedimientos, necesita una aplicación Steeltoe que ya esté preparada para su implementación en Azure Spring Cloud.

Dependencias

Para Steeltoe 2.4.4, agregue los siguientes paquetes NuGet:

Para Steeltoe 3.0.0, agregue el siguiente paquete NuGet:

Actualización de Startup.cs

  1. Para Steeltoe 2.4.4, llame a AddDistributedTracing y AddZipkinExporter en el método ConfigureServices.

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

    Para Steeltoe 3.0.0, llame a AddDistributedTracing en el método ConfigureServices.

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDistributedTracing(Configuration, builder => builder.UseZipkinWithTraceOptions(services));
    }
    
  2. Para Steeltoe 2.4.4, llame a UseTracingExporter en el método Configure.

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

    Para Steeltoe 3.0.0, no se necesitan cambios en el método Configure.

actualizar la configuración

Agregue la siguiente configuración al origen de configuración que se usará cuando la aplicación se ejecute en Azure Spring Cloud:

  1. Establezca management.tracing.alwaysSample en true.

  2. Si desea ver los intervalos de seguimiento enviados entre el servidor Eureka, el servidor de configuración y las aplicaciones de usuario: establezca management.tracing.egressIgnorePattern en "/api/v2/spans|/v2/apps/. /permissions|/eureka/. |/oauth/.*".

Por ejemplo, appsettings.json incluiría las siguientes propiedades:

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

Para obtener más información sobre el seguimiento distribuido en las aplicaciones de .NET Core Steeltoe, consulte el artículo de seguimiento distribuido en la documentación de Steeltoe.

En este artículo aprenderá a:

  • Habilitar el seguimiento distribuido en Azure Portal.
  • Agregar Spring Cloud Sleuth a una aplicación.
  • Ver los mapas de dependencia de las aplicaciones de microservicio.
  • Buscar datos de seguimiento con distintos filtros.

Requisitos previos

Para realizar estos procedimientos, necesita un servicio de Azure Spring Cloud que ya esté aprovisionado y en ejecución. Complete el inicio rápido Implementación de la primera aplicación de Spring Boot en Azure Spring Cloud para aprovisionar y ejecutar un servicio de Azure Spring Cloud.

Adición de dependencias

  1. Agregue la siguiente línea al archivo application.properties:

    spring.zipkin.sender.type = web
    

    Después de este cambio, el remitente de Zipkin puede realizar envíos a la web.

  2. Omita este paso si ha seguido la guía para preparar una aplicación en Azure Spring Cloud. En caso contrario, vaya al entorno de desarrollo local y edite el archivo pom.xml para incluir la siguiente dependencia de Spring Cloud Sleuth:

    • Versión de Spring Boot anterior a la 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>
      
    • Versión de Spring Boot posterior a la 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. Vuelva a compilar e implementar el servicio Azure Spring Cloud para reflejar estos cambios.

Modificación de la frecuencia de muestreo

Puede cambiar la frecuencia con la que se recopilan los datos de telemetría. Para ello, debe modificar la frecuencia de muestreo. Por ejemplo, si quiere muestrear la mitad tan a menudo, abra el archivo application.properties y cambie la línea siguiente:

spring.sleuth.sampler.probability=0.5

Si ya ha creado e implementado una aplicación, puede modificar la frecuencia de muestreo. Para ello, agregue la línea anterior como una variable de entorno en la CLI de Azure o en Azure Portal.

Habilitación de Application Insights

  1. Vaya a la página del servicio Azure Spring Cloud en Azure Portal.
  2. En la página Monitoring (Supervisión), seleccione Distributed Tracing (Seguimiento distribuido).
  3. Seleccione Editar configuración para editar o agregar una configuración nueva.
  4. Cree una consulta de Application Insights o seleccione una existente.
  5. Elija la categoría de registro que quiere supervisar y especifique el tiempo de retención en días.
  6. Seleccione Aplicar para aplicar el nuevo seguimiento.

Visualización del mapa de aplicación

Vuelva a la página Distributed Tracing (Seguimiento distribuido) y seleccione View application map (Ver mapa de aplicación). Revise la representación visual de la configuración de la aplicación y de la supervisión. Para aprender a usar el mapa de aplicación, consulte Mapa de aplicación: Evaluación de prioridades de las aplicaciones distribuidas.

Use la función de búsqueda para consultar otros elementos de telemetría concretos. En la página Distributed Tracing (Seguimiento distribuido), seleccione Buscar. Para más información sobre cómo usar la función de búsqueda, consulte Uso de Búsqueda en Application Insights.

Uso de Application Insights

Además del mapa de aplicación y la función de búsqueda, Application Insights proporciona funcionalidades de supervisión. Busque en Azure Portal el nombre de la aplicación y, después, abra una página de Application Insights para buscar información de supervisión. Para más información sobre cómo usar estas herramientas, consulte Consultas de registros de Azure Monitor.

Deshabilitación de Application Insights

  1. Vaya a la página del servicio Azure Spring Cloud en Azure Portal.
  2. En Monitoring (Supervisión), seleccione Distributed Tracing (Seguimiento distribuido).
  3. Seleccione Disable (Deshabilitar) para deshabilitar Application Insights.

Pasos siguientes

En este artículo, ha aprendido a habilitar y comprender el seguimiento distribuido en Azure Spring Cloud. Para obtener más información sobre el enlace de servicios a una aplicación, vea Enlace de una base de datos de Azure Cosmos DB a una aplicación de Azure Spring Cloud.