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. Enable the Cloud Trace API.

    Enable the API

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

    Acessar 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 eles estão configurados para enviar os rastros 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 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 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 Ponte do OpenCensus (em inglês).

Para informações sobre a atualização da biblioteca de cliente do Google para Go, consulte Issue #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 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:

    • 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 do período pai, se ele existir. Se um período pai não existir, o período é amostrado.

    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 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 span ausente no trace

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

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 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 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 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 rastreamento para essas configurações. Para o Cloud Service Mesh orientação, consulte Rastrear a propagação de contexto.