Resolver problemas

Nesta página, você encontra informações sobre solução de problemas do Trace.

Não há dados na interface do Trace

Se você não conseguir visualizar os traces no projeto do Google Cloud quando espera que os dados estejam presentes, tente as seguintes etapas:

  1. Ative a API necessária.

    Ative a API

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

    Acesse APIs e serviços

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

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

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

    • Selecione API Cloud Trace, selecione a guia Métricas e localize o gráfico Erros por método da 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 do período em um projeto do Google Cloud.

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

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

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

Seu aplicativo depende da biblioteca de cliente para capturar rastros e, depois de atualizar seu aplicativo para usar o OpenTelemetry, você não verá mais dados do Cloud Trace.

Como algumas bibliotecas de cliente do Google para Go são integradas ao OpenCensus, é preciso usar uma ponte do OpenCensus. Para mais informações sobre o problema resolvido pela ponte, consulte Ponte do OpenCensus (em inglês).

Para saber mais sobre a atualização da biblioteca de cliente do Google para Go, consulte o Problema 4237.

Nenhum dado de trace para o app implantado

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

Tente o seguinte:

  • Se nenhum dado aparecer 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 for 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 do período em um projeto do Google Cloud.

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

    • Para o serviço raiz, tente atualizar suas variáveis de ambiente para que o OpenTelemetry use o sampler 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 não definida 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 dele, se ele existir. Se um período pai não existir, ele será amostrado.

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

Mensagem de ID do período ausente no trace

O trace contém a mensagem "ID do período ausente".

Em sistemas de rastreamento distribuídos, são esperados traces incompletos. Um trace 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 referenciado não foi amostrado.
  • O período referenciado foi amostrado, mas ainda não foi recebido pelo Cloud Trace ou foi recebido, mas não armazenado.

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

Se a mensagem "ID do período ausente" for exibida com frequência, tente o seguinte:

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

    Os serviços do Google Cloud normalmente respeitam essa dica. No entanto, eles também limitam a taxa em que gravam dados de rastreamento.

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