Habilitar a correlação entre rastreamento e logs - Amazon CloudWatch

Habilitar a correlação entre rastreamento e logs

Você pode habilitar a correlação entre rastreamento e logs no Application Signals. Isso injeta automaticamente IDs de rastreamento e IDs de spam nos logs relevantes da aplicação. Depois, ao abrir uma página de detalhes do rastreamento no console do Application Signals, as entradas de log relevantes (se houver) que se correlacionam com o rastreamento atual aparecem automaticamente na parte inferior da página.

Por exemplo, suponha que você observe um pico no grafo de latência. Você pode escolher o ponto no grafo para carregar as informações de diagnóstico desse ponto no tempo. Você então escolhe o rastreamento relevante para obter mais informações. Ao visualizar as informações do rastreamento, você pode rolar para baixo para ver os logs associados a ele. Esses logs podem revelar padrões ou códigos de erro associados aos problemas que causam o pico de latência.

Para obter a correlação de log de rastreamento, o Application Signals depende do seguinte:

Todas essas instrumentações são fornecidas pela comunidade do OpenTelemetry. O Application Signals usa essas instrumentações para injetar contextos de rastreamento, como o ID do rastreamento e o ID da extensão, nos logs da aplicação. Para habilitá-las, você deve alterar manualmente sua configuração de registro em log para habilitar a instrumentação automática.

Dependendo da arquitetura em que sua aplicação é executada, talvez também seja necessário definir uma variável de ambiente para ativar a correlação de logs de rastreamento, além de seguir as etapas desta seção.

Depois de habilitar a correlação de logs de rastreamento,

Exemplos de configuração de correlação de logs de rastreamento

Esta seção contém exemplos de como configurar a correlação de logs de rastreamento em vários ambientes.

Spring Boot para Java

Suponha que você tenha uma aplicação Spring Boot em uma pasta chamada custom-app. Geralmente, a configuração da aplicação é um arquivo YAML chamado custom-app/src/main/resources/application.yml que pode ser apresentado como abaixo:

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

Para habilitar a correlação de logs de rastreamento, adicione a configuração de registro em log a seguir.

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

Na configuração de registro em log (como logback.xml), insira o contexto de rastreamento trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p em pattern do codificador. Por exemplo, a configuração a seguir adiciona o contexto de rastreamento antes da mensagem de log.

<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 obter mais informações sobre codificadores no Logback, consulte Encoders na documentação do Logback.

Log4j2 para Java

Na configuração de registro em log (como log4j2.xml), insira o contexto de rastreamento trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p em PatternLayout. Por exemplo, a configuração a seguir adiciona o contexto de rastreamento antes da mensagem de log.

<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 obter mais informações sobre layouts de padrões no Log4j2, consulte Pattern Layout na documentação do Log4j2.

Log4j para Java

Na configuração de registro em log (como log4j.xml), insira o contexto de rastreamento trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p em PatternLayout. Por exemplo, a configuração a seguir adiciona o contexto de rastreamento antes da mensagem de log.

<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 obter mais informações sobre layouts de padrões no Log4j, consulte Class Pattern Layout na documentação do Log4j.

Python

Defina a variável de ambiente OTEL_PYTHON_LOG_CORRELATION como true enquanto executa sua aplicação. Para obter mais informações, consulte Enable trace context injection na documentação do OpenTelemetry para Python.

Node.js

Para obter mais informações sobre como habilitar a injeção de contextos de rastreamento em Node.js para as bibliotecas de registro em log com suporte, consulte a documentação de uso do NPM para as instrumentações automáticas do Pino, Winston ou Bunyan para Node.js.