Asocie los ID de rastreo con los registros de negocio de su aplicación Java. De este modo, cuando ocurra un problema, encontrará rápidamente los registros relevantes por ID de rastreo y resolverá la incidencia con mayor rapidez.
Requisitos previos
Esta función no es compatible con la edición Basic de Application Real-Time Monitoring Service (ARMS).
El agente debe ser versión 2.6.1.2 o posterior. Para obtener más información, consulte Update the Java agent.
La recopilación de registros se configura mediante Simple Log Service (SLS). Para obtener más información, consulte Data collection overview.
Contexto
ARMS asocia los ID de rastreo con los registros de negocio mediante el mecanismo Mapped Diagnostic Context (MDC) y es compatible con Log4j, Log4j2 y Logback.
Habilitar la asociación
Inicie sesión en la consola de ARMS. En el panel de navegación izquierdo, elija .
-
Seleccione una región en la barra de navegación superior y haga clic en la aplicación.
NotaLos iconos de la columna Language indican el lenguaje de programación de la aplicación:
: Java
: Go
: Python- (guion): una aplicación monitoreada en Managed Service for OpenTelemetry
En la barra de navegación superior, elija .
-
En la pestaña Custom Configurations, dentro de la sección Application Log Association Configuration, establezca Log Source en SLS. Active el interruptor Associate Business Logs with trace ID, seleccione la región de su proyecto de SLS y vincule el proyecto con el logstore.
También puede activar los interruptores Logs are automatically populated with trace ID y Logs are automatically populated with span ID según lo requiera.
Las funciones Logs are automatically populated with trace ID y Logs are automatically populated with span ID requieren la versión 4.1.6 o posterior del agente. Al vincular SLS, también debe seleccionar un Associated Index. Puede especificar un índice de campo o un índice de texto completo.
NotaAl activar este interruptor, los ID de rastreo se agregan automáticamente a sus registros de negocio y puede omitir la configuración manual descrita en Step 5.
Si además desea identificar con precisión las excepciones de negocio, consulte Troubleshoot business exceptions by using traces and log analysis.
-
(Opcional) Asocie manualmente el ID de rastreo.
En el atributo
Patterndel diseño de su registro de negocio, agregue%X{EagleEye-TraceID}. Si utiliza el protocolo SkyWalking, agregue%X{Skywalking-TraceID}en su lugar. Si integra su aplicación mediante ACK OnePilot (el agente propio de ARMS), el formato del ID de rastreo es%X{EagleEye-TraceID}.Para asociar también un ID de span, agregue
%X{span_id}.ImportanteLa asociación del ID de span requiere la versión 4.x o posterior del agente.
Para conocer cómo obtener
{EagleEye-TraceID}en su código de negocio, consulte ARMS SDK for Java (Not Recommended).
A continuación se muestran ejemplos de cómo modificar los archivos de configuración para Log4j, Log4j2 y Logback:
-
Ejemplo de modificación del archivo de configuración de Log4j log4j.properties:
log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p]-(%C:%L) - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %m%n -
Ejemplo de modificación del archivo de configuración de Log4j2 log4j2.xml:
PatternLayout
<console name="Console" target="SYSTEM_OUT"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %m%n"/> </console>JsonLayout
<JsonLayout complete="false" compact="true" eventEol="true" properties="false" locationInfo="true" includeStacktrace="true" stacktraceAsString="true" objectMessageAsJsonObject="true" > <KeyValuePair key="EagleEye-TraceID" value="${ctx:EagleEye-TraceID}" /> <KeyValuePair key="span_id" value="${ctx:span_id}" /> </JsonLayout> -
Ejemplo de modificación del archivo de configuración de Logback logback.xml:
PatternLayout
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - traceId:%X{EagleEye-TraceID} - spanId:%X{span_id} - %msg%n</pattern> </encoder>JsonLayout
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> <providers> <timestamp/> <threadName/> <logLevel/> <loggerName/> <message/> <callerData/> <stackTrace/> <pattern> <pattern> { "EagleEye-TraceID": "%X{EagleEye-TraceID}", "span_id": "%X{span_id}" } </pattern> </pattern> </providers> </encoder>
-
Reinicie su aplicación.
Si el ID de rastreo aparece en sus registros de negocio, la asociación fue exitosa. Ejemplo de salida:
2023-02-15 15:03:43-[INFO]-(com.example....HelloController:17) - traceId:ea1e0fe79b16764446 this is an info message 2023-02-15 15:03:43-[ERROR]-(com.example....HelloController:19) - traceId:ea1e0fe79b16764446 - this is an error message 2023-02-15 15:03:43-[WARN]-(com.example....HelloController:21) - traceId:ea1e0fe79b16764446 this is a warn message -
(Opcional) Configure la recopilación de registros de SLS para cargar los registros de la aplicación en el proyecto y el logstore que vinculó en los pasos anteriores.
De forma predeterminada, ARMS no recopila los registros de la aplicación.