Use o recurso de configuração de eventos do Simple Log Service para associar logs de aplicação a trace IDs. Quando ocorrer um erro, utilize o trace ID registrado nos logs para localizar rapidamente o trace correspondente e solucionar o problema.
Pré-requisitos
A aplicação está conectada ao Managed Service for OpenTelemetry. Para mais informações, consulte Integrate services or components.
Os logs da aplicação foram importados para o Simple Log Service e contêm trace IDs ou span IDs registrados. Consulte Collect and analyze ECS text logs using LoongCollector e Logger MDC auto-instrumentation para obter detalhes.
A camada da aplicação deve gravar campos personalizados de negócio, como
trans-id, nos logs por meio de um SDK ou framework de logging. O Simple Log Service não gera esses campos automaticamente. Para usar um campo personalizado isoladamente, configure um processador Logtail no modo regex para extraí-lo do conteúdo do log. Insira campos personalizados apenas no campomessage. Campos do sistema, comothread, não são modificáveis.
Etapa 1: Extrair o trace ID
Ignore esta etapa se o trace ID já estiver armazenado em um campo separado nos logs.
Extraia o trace ID e exiba-o em um campo dedicado caso ele esteja contido em um campo agregado, como o campo content.
Faça login no console do Simple Log Service.
Selecione o projeto e o Logstore onde os logs da aplicação estão armazenados.
-
Use um processador Logtail no modo regex para extrair o trace ID dos logs e exibi-lo em um campo separado.
No painel de Logstores à esquerda, acesse . Na página Logtail Configuration, localize a configuração desejada e clique em Manage Logtail Configuration na coluna Actions.
-
Clique em Edit para iniciar a edição. Na seção Processor Configurations, dentro da aba Configuration Details, clique em Add Processor e selecione Extract Field (Regex Mode) na lista suspensa Processor Type.
Neste exemplo, o trace ID ou span ID está contido no campo content. O trecho abaixo ilustra o campo content de uma entrada de log:
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() doneNa seção Basic Configuration, defina o parâmetro Original Field como content, configure o parâmetro Regular Expression com
traceId:([a-zA-Z0-9]+)e adicione o nome do novo campo para o trace ID ou span ID em New Field Name. Para mais detalhes, consulte Data parsing plugins.Após concluir a configuração, a entrada de log extraída terá o seguinte formato:
__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
Etapa 2: Configurar um evento
Clique no trace ID ou span ID em um log e, em seguida, clique em Go to configuration.
-
Na caixa de diálogo Advanced Event Settings, adicione um evento para o campo traceId ou spanId e clique em OK. Configure os seguintes parâmetros:
Configuration Name: Insira um nome personalizado, como
Start Trace Analysis.Event Action: Selecione Create Custom HTTP URL.
Protocol: Escolha Custom e insira
httpsna caixa de texto.-
Enter a URL:
-
Para filtrar traces por trace ID, especifique a URL no formato
trace.console.alibabacloud.com/#/${regionId}/tracing-explorer?source=XTRACE&filters=traceId="${traceId}". Substitua${regionId}pelo ID da região onde sua aplicação está conectada ao Managed Service for OpenTelemetry.Por exemplo, se a aplicação estiver conectada ao Managed Service for OpenTelemetry na região China (Hangzhou), substitua
${regionId}porcn-hangzhou. A URL completa serátrace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}". Para filtrar traces por span ID, extraia o span ID para um campo separado e substitua
${traceId}na URL por${spanId}. Caso precise filtrar simultaneamente por trace ID e span ID, utilize a seguinte URL:trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=traceId="${traceId}" AND spanId="${spanId}".-
Para filtrar traces por atributos personalizados, como Attributes e Resources, defina a URL no seguinte formato:
trace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=${Nome do atributo personalizado nos traces}="${Nome do campo nos logs}".Por exemplo, para filtrar traces por namespace, considerando que os logs contenham o campo
namespacee que o atributo k8s.namespace.name tenha sido adicionado aos traces, a URL completa serátrace.console.alibabacloud.com/#/cn-hangzhou/tracing-explorer?source=XTRACE&filters=resources.k8s.namespace.name="${namespace}".
-
-
Clique novamente no trace ID ou span ID no log e selecione Start Trace Analysis para acessar a página Trace Explorer do Managed Service for OpenTelemetry.
Na página Trace Explorer, consulte o trace pelo trace ID. Para mais informações, consulte Trace Explorer.
Na página Trace Explorer, use o painel de filtros à esquerda para refinar os traces por status, latência, nome da aplicação, nome da API e endereço do host. A área superior direita exibe gráficos estatísticos com contagem de chamadas, erros HTTP e percentis de latência. A tabela abaixo lista cada registro de trace com detalhes como TraceId, nome da API, nome da aplicação, latência, status, horário de início e endereço do host.