Puede asociar los registros de aplicación con los ID de traza en Simple Log Service mediante la función de configuración de eventos. Cuando ocurra un error, utilice el ID de traza escrito en sus registros de aplicación para localizar rápidamente la traza correspondiente y solucionar el problema.
Requisitos previos
La aplicación está conectada a Managed Service for OpenTelemetry. Para obtener más información, consulte Integrate services or components.
Los registros de aplicación se importan a Simple Log Service y los ID de traza o ID de span se escriben en dichos registros. Para obtener más información, consulte Collect and analyze ECS text logs using LoongCollector y Logger MDC auto-instrumentation.
La capa de aplicación debe escribir los campos de negocio personalizados, como
trans-id, en los registros mediante un SDK o un framework de registros. Simple Log Service no genera estos campos automáticamente. Si desea usar un campo personalizado como un campo independiente, utilice un procesador de Logtail en modo regex para extraerlo del contenido del registro. Los campos personalizados solo se pueden colocar en el campomessage. No es posible modificar los campos del sistema, comothread.
Paso 1: Extraer el ID de traza
Si el ID de traza se almacena en un campo independiente dentro de los registros, omita este paso.
Si el ID de traza se encuentra dentro de un campo como content, extráigalo y muéstrelo en un campo independiente.
Inicie sesión en la consola de Simple Log Service.
Seleccione el proyecto y el logstore donde se almacenan los registros de aplicación.
-
Utilice un procesador de Logtail en modo regex para extraer el ID de traza de los registros y mostrarlo en un campo independiente.
En el panel izquierdo de logstores, seleccione . En la página de configuración de Logtail, busque la configuración que desea gestionar y haga clic en Manage Logtail Configuration en la columna Actions.
-
Haga clic en Edit para comenzar la edición. En la sección Processor Configurations de la pestaña Configuration Details, haga clic en Add Processor y seleccione Extract Field (Regex Mode) en la lista desplegable Processor Type.
En este ejemplo, el ID de traza o el ID de span se encuentra dentro del campo content. A continuación se muestra un ejemplo del campo content de una entrada de registro:
2024-05-06 12:12:49.685 [http-nio-9190-exec-3] DEBUG io.lettuce.core.protocol.DefaultEndpoint - traceId:ea1a00002d17150191696858089d0007 - [channel=0x5d069239, /10.0.0.45:49614 -> redis/192.168.216.80:6379, epid=0x1] write() doneEn la sección Basic Configuration, establezca el parámetro Original Field en content y el parámetro Regular Expression en
traceId:([a-zA-Z0-9]+). Después, agregue el ID de traza o el ID de span al campo New Field Name. Para obtener más información, consulte Data parsing plugins.Una vez completada la configuración, la entrada de registro extraída tendrá el siguiente aspecto.
__tag__:_cluster_id_: xxx __tag__:_node_ip_: xxx.xxx.xxx.7 __tag__:_node_name_: cn-hangzhou.xxx.xxx.7 _container_ip_: xxx.xxx.xxx 40 _container_name_: adservice _image_name_: ghcr.io/open-telemetry/demo:1.4.0-adservice _namespace_: otel-demo _pod_name_: opentelemetry-demo-adservice-xxx _pod_uid_: xxx _source_: stdout _time_: 2024-05-07T10:36:48.078285414+08:00 content: 2024-05-07 02:36:48 - oteldemo.AdService - Targeted ad request received for [accessories] trace_id=xxx span_id=xxx trace_flags=01 span_id: xxx traceId: xxx
Paso 2: Configurar un evento
Haga clic en el ID de traza o el ID de span dentro de un registro y, a continuación, haga clic en Go to configuration.
-
En el cuadro de diálogo Advanced Event Settings, agregue un evento para el campo traceId o spanId y haga clic en OK. Están disponibles los siguientes parámetros.
Configuration Name: introduzca un nombre personalizado, por ejemplo,
Start Trace Analysis.Event Action: seleccione Create Custom HTTP URL.
Protocol: seleccione Custom e introduzca
httpsen el cuadro de texto.-
Enter a URL:
-
Para filtrar trazas por ID de traza, especifique la URL con el formato
trace.console.alibabacloud.com/#/${regionId}/tracing-explorer?source=XTRACE&filters=traceId="${traceId}". Reemplace${regionId}con el ID de la región donde su aplicación se conecta a Managed Service for OpenTelemetry.Por ejemplo, si su aplicación se conecta a Managed Service for OpenTelemetry en la región China (Hangzhou), reemplace
${regionId}porcn-hangzhou. La URL completa serátrace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}". Para filtrar trazas por ID de span, extraiga el ID de span a un campo independiente y reemplace
${traceId}en la URL por${spanId}. Si necesita filtrar trazas tanto por ID de traza como por ID de span, utilice la siguiente URL:trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" AND spanId="${spanId}".-
Para filtrar trazas por atributos personalizados, como Attributes y Resources, especifique la URL con el siguiente formato:
trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=${Name of the custom attribute in traces}="${Name of the field in logs}".Por ejemplo, si desea filtrar trazas por namespace, los registros contienen el campo
namespacey las trazas incluyen el atributo k8s.namespace.name, la URL completa serátrace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=resources.k8s.namespace.name="${namespace}".
-
-
Vuelva a hacer clic en el ID de traza o el ID de span dentro del registro y haga clic en Start Trace Analysis para ir a la página Trace Explorer de Managed Service for OpenTelemetry.
En la página Trace Explorer, consulte la traza mediante su ID de traza. Para obtener más información, consulte Trace Explorer.
En la página Trace Explorer, puede utilizar el panel de filtros de la izquierda para filtrar trazas por estado, latencia, nombre de aplicación, nombre de API y dirección del host. El área superior derecha muestra gráficos estadísticos que incluyen recuentos de llamadas, errores HTTP y percentiles de latencia. La tabla inferior enumera cada registro de traza con detalles como TraceId, nombre de API, nombre de aplicación, latencia, estado, hora de inicio y dirección del host.