Resolver erros de rastreamento distribuído

Neste documento, descrevemos como diagnosticar e resolver problemas com o rastreamento distribuído ao usar o Cloud Trace e políticas de telemetria com o Secure Web Proxy.

Os rastreamentos não aparecem no Trace

Se os intervalos de rastreamento gerados pelo Secure Web Proxy não aparecerem no Explorador de rastreamentos, verifique os seguintes itens:

  1. Verifique se a API Cloud Trace está ativada: confira se a API Trace (cloudtrace.googleapis.com) está ativada no projetoGoogle Cloud que hospeda seu gateway Secure Web Proxy.

    <pre class="devsite-click-to-copy">
    gcloud services enable cloudtrace.googleapis.com
    </pre>
    
  2. Verifique se a política de telemetria existe e está ativa: use o comando gcloud beta network-services telemetry-policies describe para verificar se a política de telemetria existe na região correta e faz referência ao gateway de Secure Web Proxy apropriado:

    gcloud beta network-services telemetry-policies describe POLICY_NAME \
        --location=REGION
    

    Substitua:

    • POLICY_NAME: nome da sua política de telemetria, como my-swp-tracing-policy
    • REGION: região em que sua política de telemetria está implantada, como us-central1
  3. Verifique a taxa de amostragem: se o samplingRate da sua política for baixo (por exemplo, 0.01 para 1% ou 0.001 para 0,1%), as solicitações de teste manual individuais podem não ser amostradas. Para confirmar se o rastreamento está funcionando, atualize temporariamente sua política para usar amostragem de 100% (samplingRate: 1.00) e restaure sua taxa de produção.

  4. Valide o URI do recurso de gateway de destino: verifique se o campo telemetryTarget.resources na política de telemetria especifica o URL do recurso totalmente qualificado ou o nome abreviado do gateway Secure Web Proxy.

    //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/GATEWAY_NAME
    

    Substitua:

    • PROJECT_ID: ID do seu projeto Google Cloud
    • REGION: região em que o gateway do Secure Web Proxy está implantado, como us-central1
    • GATEWAY_NAME: nome da instância de gateway do Secure Web Proxy.

    Qualquer incompatibilidade no ID do projeto, na região ou no nome do gateway impede que o proxy receba a configuração da política.

  5. Verifique as permissões do Identity and Access Management (IAM):

    • Verifique se você concedeu à sua conta de usuário ou de serviço o papel de usuário do Cloud Trace (roles/cloudtrace.user) para ver os períodos no console Google Cloud .
    • Confira se você concedeu o papel de agente do Cloud Trace (roles/cloudtrace.agent) às seguintes contas de serviço:
      • service-PROJECT_NUMBER@compute-system.
      • service-PROJECT_NUMBER@gcp-sa-networksecurity.
      • Contas de serviço máquina virtual (VMs) do cliente, se os aplicativos cliente gerarem ou propagarem intervalos

Intervalos filhos ausentes ou gráficos de rastreamento corrompidos

Se os intervalos de proxy do Secure Web Proxy aparecerem como rastreamentos de raiz independentes ou desconectados em vez de intervalos filhos das solicitações do aplicativo, faça o seguinte:

  1. Ative a amostragem com base em parentesco: no arquivo YAML da política de telemetria, verifique se parentBasedSampling.enabled está definido como true.

    tracingConfiguration:
      samplingRate: 0.01
      parentBasedSampling:
        enabled: true
    

    Quando a amostragem baseada em parentesco está desativada, o Secure Web Proxy pode descartar rastreamentos que foram amostrados upstream se não corresponderem ao samplingRate local.

  2. Verifique a instrumentação do OpenTelemetry: confira se o aplicativo usa um SDK do OpenTelemetry com a propagação de contexto de rastreamento distribuído ativada. Para mais informações, consulte a documentação do propagador TraceContext do OpenTelemetry.

Volume de ingestão de rastreamentos inesperadamente alto

Se você notar um volume ou custos de ingestão de rastreamento mais altos do que o esperado no Trace, faça o seguinte:

  1. Reduza a taxa de amostragem de base: em ambientes de produção com alto tráfego, defina samplingRate como uma fração menor, como 0.01 (1%) ou 0.001 (0,1%).
  2. Use a amostragem com base no elemento principal: mantenha o valor de referência do gateway samplingRate baixo e ative parentBasedSampling. Essa combinação ajuda a garantir que o proxy faça amostragem apenas das solicitações selecionadas especificamente pelos aplicativos upstream.
  3. Remova as políticas de depuração temporárias: se você tiver aplicado amostragem de 100% (samplingRate: 1.00) durante a solução de problemas, remova a política ou reverta para a configuração anterior após a conclusão do processo de depuração.

A seguir