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:
-
Enable the Cloud Trace API.
No console do Google Cloud, acesse a página 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ãocloudtrace.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 de0.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 comotrue
. 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.