Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Ativar o rastreamento distribuído no ASM

Última atualização: Jun 28, 2026

Service Mesh (ASM) integra-se ao Managed Service for OpenTelemetry para ajudar você a identificar gargalos de desempenho em aplicações distribuídas. Visualize dados de rastreamento, exiba topologias de rastros, analise dependências da aplicação e contabilize requisições.

Informações básicas

O rastreamento distribuído traça o perfil e monitora aplicações, especialmente aquelas construídas com arquitetura de microsserviços. Os proxies sidecar em uma instância do ASM geram e enviam spans automaticamente. No entanto, as aplicações precisam propagar os cabeçalhos HTTP adequados para correlacionar corretamente os spans em um único rastro. A aplicação deve coletar determinados cabeçalhos de cada requisição recebida e encaminhá-los para todas as requisições de saída acionadas por essa requisição de entrada. O OpenTelemetry oferece suporte a diferentes propagadores, cada um utilizando cabeçalhos distintos. A seção a seguir lista os propagadores compatíveis e seus respectivos cabeçalhos.

Propagadores B3

  • x-request-id

  • x-b3-traceid

  • x-b3-spanid

  • x-b3-parentspanid

  • x-b3-sampled

  • x-b3-flags

  • x-ot-span-context

Propagadores W3C Trace Context

  • traceparent

  • tracestate

Nota

Instâncias do ASM da versão V1.18.0.124 ou anteriores usam propagadores B3 por padrão. Instâncias do ASM com versões posteriores à V1.18.0.124 utilizam propagadores W3C Trace Context como padrão.

Pré-requisitos

Descrição da aplicação de exemplo

Na aplicação de exemplo Bookinfo, o serviço productpage (implementado em Python) utiliza bibliotecas OpenTracing para extrair os cabeçalhos necessários das requisições HTTP no formato de propagação B3.

def getForwardHeaders(request):
    headers = {}
    # x-b3-*** headers can be populated using the opentracing span
    span = get_current_span()
    carrier = {}
    tracer.inject(
        span_context=span.context,
        format=Format.HTTP_HEADERS,
        carrier=carrier)
    headers.update(carrier)
    # ...
    incoming_headers = ['x-request-id']
    # ...
    for ihdr in incoming_headers:
        val = request.headers.get(ihdr)
        if val is not None:
            headers[ihdr] = val
    return headers

O serviço reviews (implementado em Java) também emprega cabeçalhos HTTP no formato de propagação B3.

@GET
@Path("/reviews/{productId}")
public Response bookReviewsById(@PathParam("productId") int productId,
                            @HeaderParam("end-user") String user,
                            @HeaderParam("x-request-id") String xreq,
                            @HeaderParam("x-b3-traceid") String xtraceid,
                            @HeaderParam("x-b3-spanid") String xspanid,
                            @HeaderParam("x-b3-parentspanid") String xparentspanid,
                            @HeaderParam("x-b3-sampled") String xsampled,
                            @HeaderParam("x-b3-flags") String xflags,
                            @HeaderParam("x-ot-span-context") String xotspan) {
  if (ratings_enabled) {
    JsonObject ratingsResponse = getRatings(Integer.toString(productId), user, xreq, xtraceid, xspanid, xparentspanid, xsampled, xflags, xotspan);

Exemplo de acesso

Insira uma URL no formato http://{endereço IP do gateway de entrada}/productpage na barra de endereços do navegador e pressione Enter. Você será direcionado à página da aplicação Bookinfo.

Visualizar aplicações

A página Applications do console do Managed Service for OpenTelemetry exibe métricas essenciais de todas as aplicações monitoradas, incluindo o número de requisições e erros do dia atual, além do status de integridade. Configure rótulos para as aplicações para filtrá-las posteriormente.

  1. Faça login no console do Managed Service for OpenTelemetry.

  2. No painel de navegação à esquerda, clique em Applications. Na parte superior da página, selecione a região desejada.

Visualizar detalhes da aplicação

A página Application Details apresenta métricas principais, topologia de chamadas e rastros da aplicação em cada servidor onde ela está implantada.

  1. Faça login no console do Managed Service for OpenTelemetry.

  2. No painel de navegação à esquerda, clique em Applications. Selecione a região alvo na parte superior da página e clique no nome da aplicação correspondente.

  3. No painel de navegação à esquerda, clique em Application Details. Na lista de máquinas à esquerda, clique em All ou em uma máquina identificada pelo endereço IP.

    Na aba Overview, visualize a topologia de chamadas e as métricas de desempenho essenciais. Na aba Traces, confira a lista de rastros da aplicação na máquina selecionada, ordenada por duração em ordem decrescente. A página lista no máximo 100 rastros. Clique na aba Traces para ver a lista de registros de rastreamento. O painel esquerdo fornece métricas de ordenação como Response Time, Requests e Errors, além de filtros de instância. A lista à direita exibe informações de cada span, como Start Time, Span Name, Host/IP, Duration, Status e traceid. Filtre os registros usando a caixa de entrada Duration greater than e a caixa de seleção Exception. Clique em View logs para consultar os detalhes de log da chamada correspondente.

Visualizar o gráfico de cascata de um rastro

O gráfico de cascata de um rastro mostra o horário de geração do log, status, endereço IP ou nome do servidor, nome do serviço e linha do tempo.

  1. Na página Application Details, clique na aba Traces e selecione o Trace ID do rastro desejado.

  2. Na página Traces exibida, visualize o gráfico de cascata do rastro.

    Nota
    • O campo IP Address pode exibir um endereço IP ou o nome da máquina, dependendo da configuração de visualização na página Application Settings. Para mais detalhes, consulte Gerenciar aplicações e tags.

    • Passe o ponteiro sobre o nome de um serviço para ver suas informações, incluindo duração, hora de início, tags e eventos de log. Para mais informações, consulte Detalhes da aplicação.

    O topo da página de detalhes do rastro exibe um resumo com hora de início, duração total, quantidade de aplicações, profundidade do rastro e número total de spans. Abaixo do resumo, a lista de spans usa recuo para mostrar a hierarquia de chamadas entre serviços. As colunas incluem Span Name, Timeline (uma barra azul indicando a porcentagem de tempo consumido), Application Name, Start Time, IP Address e Status.

Perguntas frequentes

Por que não consigo visualizar as informações de rastro após coletar dados de rastreamento para o Managed Service for OpenTelemetry no console do ASM?

  1. Verifique os logs de envio de rastros.

    1. Obtenha o arquivo kubeconfig do cluster e use o kubectl para se conectar a ele. Para mais informações, consulte Obter o arquivo kubeconfig de um cluster e usar o kubectl para se conectar ao cluster.

    2. Execute o comando abaixo para visualizar os logs de envio de rastros dos pods relacionados ao deployment tracing-on-external-zipkin no namespace istio-system:

      kubectl logs "$(kubectl get pods -n istio-system  -l app=tracing -o jsonpath='{.items[0].metadata.name}')" -n istio-system -c  nginx

      Se o valor de status no log de saída do Nginx for 406, significa que a requisição POST para /api/v2/spans retornou um código de status HTTP 406.

      remote_addr:192.168.26.98 time_local:17/Aug/2021:08:15:17 +0000 method:POST uri:/api/v2/spans host:zipkin  status:406   bytes_sent:1146 referer:- useragent:- forwardedfor:192.168.26.98  request_time:0.012  upstream_response_time:0.011
      remote_addr:192.168.26.98 time_local:17/Aug/2021:08:15:17 +0000 method:POST uri:/api/v2/spans host:zipkin  status:406   bytes_sent:1146 referer:- useragent:- forwardedfor:192.168.26.98  request_time:0.012  upstream_response_time:0.013
  2. Consulte a cota de requisições de serviço por dia e a quantidade real de requisições do dia anterior.

    1. Faça login no console do Managed Service for OpenTelemetry.

    2. No painel de navegação à esquerda, clique em Cluster Configurations para verificar a cota de requisições e a contagem de ontem.

      No painel Quota configuration, o campo Configuration quota mostra o valor atual da cota em unidades de 10.000 requisições. A contagem real de requisições de ontem aparece entre parênteses no título do painel. Caso a quantidade de requisições de ontem ultrapasse a cota configurada, aumente a cota.

    Quando a contagem real de requisições do dia anterior excede a cota diária configurada, os dados reportados são descartados.

  3. Altere a cota de requisições de serviço por dia.

    Se a contagem diária real de requisições superar a cota diária, os dados reportados serão descartados e nenhuma informação de rastro será exibida. Aumente a cota diária para um valor superior à contagem real de requisições diárias para resolver esse problema.

    1. No painel de navegação à esquerda do console do Managed Service for OpenTelemetry, clique em Cluster Configurations.

    2. Na aba Cluster Configurations, na área Quota configuration, altere o valor de Configuration quota para um número maior que a contagem de requisições de serviço. Em seguida, clique em Save.

    3. Na caixa de diálogo Prompt, clique em OK.

Por que o traceid muda após a requisição ser processada pelo gateway de entrada ou sidecar?

Esse problema ocorre quando os cabeçalhos de propagação na requisição da sua aplicação estão incompletos, fazendo com que o proxy sidecar os regenere. Para usar um traceid personalizado, inclua pelo menos x-b3-traceid e x-b3-spanid no formato de propagação B3, ou pelo menos um cabeçalho traceparent no formato de propagação W3C Trace Context.