Habilitación de la correlación entre seguimientos y registros - Amazon CloudWatch

Habilitación de la correlación entre seguimientos y registros

Puede habilitar la correlación entre seguimientos y registros en Application Signals. Esto introduce automáticamente los ID de seguimiento y los ID de intervalo en los registros de aplicación pertinentes. A continuación, al abrir una página de detalles del seguimiento en la consola de Application Signals, las entradas de registro pertinentes (si las hay) que se correlacionan con el seguimiento actual aparecen automáticamente en la parte inferior de la página.

Por ejemplo, supongamos que observa un pico en un gráfico de latencia. Puede elegir el punto del gráfico para cargar la información de diagnóstico correspondiente a ese punto en el tiempo. A continuación, selecciona el seguimiento correspondiente para obtener más información. Al ver la información del seguimiento, puede desplazarse hacia abajo para ver los registros asociados a él. Estos registros pueden revelar patrones o códigos de error asociados a los problemas que provocan el pico de latencia.

Para lograr la correlación del registro de trazas, Application Signals se basa en lo siguiente:

Todos estos instrumentos están disponibles en la comunidad de OpenTelemetry. Application Signals los utiliza para inyectar contextos de seguimientos, como el ID de seguimiento y el ID de intervalo, en los registros de la aplicación. Para habilitar esto, debe cambiar manualmente la configuración de registro para habilitar la autoinstrumentación.

Según la arquitectura en la que se ejecute la aplicación, es posible que también deba configurar una variable de entorno para habilitar la correlación de registros de seguimiento, además de seguir los pasos de esta sección.

Una vez que habilite la correlación de los registros de seguimientos,

Ejemplos de configuración de la correlación del registro de seguimientos

Esta sección contiene ejemplos de cómo configurar la correlación del registro de seguimientos en varios entornos.

Spring Boot para Java

Supongamos que tiene una aplicación Spring Boot en una carpeta llamada custom-app. La configuración de la aplicación suele ser un archivo YAML con el nombre custom-app/src/main/resources/application.yml y que podría tener este aspecto:

spring: application: name: custom-app config: import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/} ...

Para habilitar la correlación del registro de seguimientos, agregue la siguiente configuración de registro.

spring: application: name: custom-app config: import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/} ... logging: pattern: level: trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p

Logback para Java

En la configuración de registro (como logback.xml), inserte el contexto de seguimiento trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p en pattern del codificador. Por ejemplo, la siguiente configuración antepone el contexto de seguimiento al mensaje de registro.

<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>app.log</file> <append>true</append> <encoder> <pattern>trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p - %m%n</pattern> </encoder> </appender>

Para obtener más información sobre los codificadores de Logback, consulte Encoders en la documentación de Logback.

Log4j2 para Java

En la configuración de registro (por ejemplo, log4j2.xml), inserte el contexto de seguimiento trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p en PatternLayout. Por ejemplo, la siguiente configuración antepone el contexto de seguimiento al mensaje de registro.

<Appenders> <File name="FILE" fileName="app.log"> <PatternLayout pattern="trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p - %m%n"/> </File> </Appenders>

Para obtener más información sobre los diseños de patrones en Log4j2, consulte Pattern Layout en la documentación de Log4j2.

Log4j para Java

En la configuración de registro (como log4j.xml), inserte el contexto de seguimiento trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p en PatternLayout. Por ejemplo, la siguiente configuración antepone el contexto de seguimiento al mensaje de registro.

<appender name="FILE" class="org.apache.log4j.FileAppender">; <param name="File" value="app.log"/>; <param name="Append" value="true"/>; <layout class="org.apache.log4j.PatternLayout">; <param name="ConversionPattern" value="trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p - %m%n"/>; </layout>; </appender>;

Para obtener más información sobre los diseños de patrones en Log4j, consulte Class Pattern Layout en la documentación de Log4j.

Python

Establezca la variable de entorno de OTEL_PYTHON_LOG_CORRELATION en true mientras se ejecuta la aplicación. Para obtener más información, consulte Enable trace context injection en la documentación de OpenTelemetry de Python.

Node.js

Para obtener más información sobre cómo habilitar la inyección de contexto de rastreo en Node.js para las bibliotecas de registro que la admiten, consulte la documentación de uso de NPM de las instrumentaciones automáticas de Pino, Winston o Bunyan para Node.js.