Resolver problemas

Esta página contém informações sobre solução de problemas do Trace.

Não há dados na interface do Trace

Se não for possível visualizar os traces no projeto do Google Cloud quando você espera a existência de dados de trace, siga estas etapas:

  1. Enable the Cloud Trace API.

    Enable the API

  2. No console do Google Cloud, acesse a página APIs e serviços:

    Acessar APIs e serviços

    Depois de encontrar a linha API Cloud Trace, faça o seguinte:

    • Se a coluna Solicitações não listar informações numéricas, nenhum dado de trace será enviado ao seu projeto do Google Cloud.

      Para resolver esse caso, verifique seus aplicativos e proxies para garantir que eles estão configurados para enviar os traces para o projeto correto.

    • Selecione a API Cloud Trace, a guia Métricas e encontre o gráfico Erros por método de API:

      • Se as gravações estiverem falhando, conceda à conta de serviço que está fornecendo as credenciais de autenticação o papel de agente do Cloud Trace (roles/cloudtrace.agent). Esse papel inclui a permissão cloudtrace.traces.patch, que permite que os aplicativos gravem dados de abrangência em um projeto do Google Cloud.

        Para mais informações, consulte Papéis do IAM do Cloud Trace.

      • Se as leituras falharem, verifique se o papel do IAM no projeto do Google Cloud inclui as permissões no papel Usuário do Cloud Trace (roles/cloutrace.user). Para conferir uma lista de permissões para esse papel, consulte Papéis do Cloud IAM do Cloud Trace.

Nenhum dado de rastreamento após a atualização do app Go para usar o OpenTelemetry

O aplicativo depende da biblioteca de cliente para capturar rastros. Depois de atualizar o aplicativo para usar o OpenTelemetry, você não vai mais ver dados do Cloud Trace.

Como algumas bibliotecas de cliente do Google para Go são integradas ao OpenCensus, é necessário usar uma ponte do OpenCensus. Para mais informações sobre o problema resolvido pela ponte, consulte OpenCensus Bridge.

Para informações sobre a atualização da biblioteca de cliente do Google para Go, consulte Issue #4237.

Não há dados de rastreamento para o app implantado.

Você implantou um app que envia dados para seu projeto do Google Cloud usando a API Cloud Trace, mas os dados de trace não são coletados.

Tente o seguinte:

  • Se não houver dados na página Explorador de traces do console do Google Cloud, siga as etapas na seção Nenhum dado na interface do Trace.

  • Se o app não estiver implantado no Google Cloud ou se usar uma conta de serviço para fornecer credenciais de autenticação, verifique se a conta de serviço recebeu o papel de agente do Cloud Trace (roles/cloudtrace.agent).

    Esse papel inclui a permissão cloudtrace.traces.patch, que permite que os aplicativos gravem dados de abrangência em um projeto do Google Cloud.

  • Se o app depender do OpenTelemetry, faça o seguinte:

    • Para o serviço raiz, tente atualizar as variáveis de ambiente para que o OpenTelemetry use o amostrador traceidratio com uma taxa de amostragem de 0.5:

      export OTEL_TRACES_SAMPLER="traceidratio"
      export OTEL_TRACES_SAMPLER_ARG="0.5"
      
    • Para todos os outros serviços, deixe a variável de ambiente OTEL_TRACES_SAMPLER definida como "unset" para usar o sampler padrão, que é parentbased_always_on. A configuração padrão significa que a decisão de amostragem de um período é herdada do período pai, se ele existir. Se uma span pai não existir, ela será amostrada.

    A menos que seu aplicativo sempre faça a amostragem de cada intervalo, não é possível, em geral, forçar que uma solicitação seja rastreada de ponta a ponta, porque cada componente em uma solicitação de ponta a ponta toma sua própria decisão de amostragem. No entanto, é possível influenciar a decisão adicionando ao cabeçalho do rastreamento uma flag sampled, com essa flag definida como true. Essa configuração é uma dica para componentes filhos para amostrar a solicitação. Para mais informações sobre cabeçalhos de trace, consulte Protocolos para propagação de contexto.

Mensagem de ID de span ausente no trace

Seu rastro contém a mensagem "ID de span ausente".

Em sistemas de rastreamento distribuído, é esperado que os rastros sejam incompletos. Um rastro está incompleto quando um período amostrado contém uma referência a outro período que não foi recebido. A referência não resolvida pode ocorrer pelos seguintes motivos:

  • O período de referência não foi amostrado.
  • O período de referência foi amostrado, mas ainda não foi recebido pelo Cloud Trace ou o período foi recebido, mas não foi armazenado.

Quando você está visualizando um trace incompleto, o Cloud Trace mostra a mensagem "ID de período ausente" no painel de detalhes do trace.

Se a mensagem "ID de span ausente" aparecer com frequência, tente o seguinte:

  • Para os componentes que você gerencia, verifique se eles respeitam e propagam a flag sampled do cabeçalho, quando esse campo está presente. Essa configuração é uma dica para componentes filhos para amostrar a solicitação. Para mais informações sobre cabeçalhos de trace, consulte Protocolos para propagação de contexto.

    Os serviços do Google Cloud geralmente respeitam essa sugestão. No entanto, eles também limitam a taxa em que gravam dados de trace.

  • Se você estiver usando o Cloud Service Mesh, siga as orientações para propagar o contexto de rastreamento para essas configurações. Para orientações sobre o Cloud Service Mesh, consulte Rastrear a propagação de contexto.