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:
Instrumentação automática do Logger MDC
para Java. Instrumentação de registro em log do OpenTelemetry
para Python. As instrumentações automáticas do Pino
, Winston ou Bunyan para Node.js.
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.
No Amazon EKS, nenhuma etapa adicional é necessária.
No Amazon ECS, nenhuma etapa adicional é necessária.
No Amazon EC2, consulte a etapa 4 no procedimento na Etapa 3: instrumentalizar a aplicação e iniciá-la.
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
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
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
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
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