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 nenhum trace no seu projeto do Google Cloud quando esperar que os dados de trace estejam presentes, tente as seguintes etapas:

  1. Ative a API Cloud Trace.

    Ative a 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, tente o seguinte:

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

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

    • Selecione API Cloud Trace, clique na 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 do 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 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 atualizar o app Go para usar o OpenTelemetry

O aplicativo depende da biblioteca de cliente para capturar traces e, depois de atualizar o aplicativo para usar o OpenTelemetry, não será mais possível ver os 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 mais informações sobre a atualização da biblioteca de cliente do Google para Go, consulte o Problema no 4237.

Nenhum dado de trace para o aplicativo 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 você não estiver vendo dados na página Explorador de traces do console do Google Cloud, siga as etapas da seção Sem dados 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 do 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íodo 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 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, se ele existir. Se um período pai não existir, ele será usado como amostra.

    A menos que seu aplicativo sempre faça a amostragem 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 toma a própria decisão de amostragem. No entanto, é possível influenciar a decisão adicionando ao cabeçalho do trace uma sinalização sampled, com essa sinalização definida como true. Essa configuração é uma dica para que os componentes filhos tenham uma amostra da solicitação. Para mais informações sobre cabeçalhos de rastreamento, consulte Protocolos para propagação de contexto.

Mensagem de ID de período ausente no trace

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

Em sistemas de rastreamento distribuídos, rastros incompletos são esperados. Um trace está incompleto quando um período de amostra 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 o período foi recebido, mas não armazenado.

Quando você visualiza 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" é exibida com frequência, faça o seguinte:

  • Para componentes que você gerencia, verifique se eles respeitam e propagam a sinalização da sinalização sampled do cabeçalho, quando esse campo está presente. Essa configuração é uma dica para que os componentes filhos usem a solicitação como amostra. 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 trace.

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