Resolver problemas

Esta página contém informações sobre solução de problemas para Ras-Tre-Ar.

Não há dados na interface do Trace

Se não for possível visualizar nenhum trace no seu projeto do Google Cloud quando esperar o trace a presença dos dados, tente as seguintes etapas:

  1. Ative a API Cloud Trace.

    Ative a API

  2. No console do Google Cloud, acesse APIs e Serviços:

    Vá para APIs e Serviços

    Depois de encontrar a linha API Cloud Trace, tente 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 estão configuradas para enviar os traces ao projeto correto.

    • Selecione API Cloud Trace, clique na guia Métricas e localize o gráfico chamado Erros por método da API:

      • Se as gravações estiverem falhando, conceda a conta de serviço que é fornecer as credenciais de autenticação do papel Agente do Cloud Trace (roles/cloudtrace.agent). Esse papel inclui a permissão cloudtrace.traces.patch, que permite que os aplicativos gravem dados de períodos 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 IAM no projeto do Google Cloud inclui as permissões do papel Usuário do Cloud Trace (roles/cloutrace.user). Para acessar uma lista de permissões para esse papel, consulte Papéis do IAM do Cloud Trace.

Nenhum dado de rastreamento após atualizar o app Go para usar o OpenTelemetry

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

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

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

Nenhum dado de trace para o aplicativo implantado

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

Tente o seguinte:

  • Se você não encontrar dados na página Explorador de traces do console do Google Cloud e siga as etapas da seção Nenhum dado na interface do Trace.

  • Se o app não estiver implantado no Google Cloud ou se usar um conta de serviço fornecer credenciais de autenticação e garantir que o 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 períodos em um projeto do Google Cloud.

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

    • No serviço raiz, tente atualizar as variáveis de ambiente para que O OpenTelemetry usa 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 o campo OTEL_TRACES_SAMPLER não é definida a variável de ambiente 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 de seu período pai, se esse período existir. Se um período pai não existir, o período é amostrado.

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

Mensagem de ID de período ausente no trace

O trace contém um "ID de período ausente" mensagem.

Em sistemas de rastreamento distribuídos, rastros incompletos são esperados. Um trace é incompleta quando um período de amostra contém uma referência a outro que não foi recebido. A referência não resolvida pode ocorrer para o os 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 o período foi recebido, mas não armazenado.

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

Se a mensagem "ID do período ausente" é constante, tente o seguintes:

  • Para componentes que você gerencia, garanta que eles respeitem e propagar a sinalização sampled do cabeçalho, quando esta está presente. Essa configuração é uma dica para que os componentes filhos usem solicitação. Para mais informações sobre cabeçalhos de trace, 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 de gravação dos dados de trace.

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