Integrar com o Cloud Logging

Este documento descreve como associar um rastro a uma entrada de registro do Cloud Logging. Ao usar os campos de rastreamento na estrutura LogEntry, spanId, trace e traceSampled, é possível correlacionar registros e rastros para permitir uma solução de problemas distribuída melhor.

Associar manualmente uma entrada de registro a um trace ou período

Se você usa a API Cloud Logging para gravar dados de registro ou se grava dados de registros estruturados, é possível associar uma entrada de registro a um trace ou a um período. A entrada de registro também pode registrar se o rastro foi amostrado. Para saber como o Agente de operações converte dados de registro estruturados em campos em um LogEntry, consulte Campos especiais em payloads estruturados.

Para associar uma entrada de registro a um trace, defina o campo trace no objeto LogEntry. O campo trace precisa ser definido como uma string com o seguinte formato:

   projects/PROJECT_ID/traces/TRACE_ID

em que PROJECT_ID é o código do projeto do Google Cloud e TRACE_ID é o identificador de trace

Para associar uma entrada de registro a um período ao usar a API Cloud Logging, defina o campo spanId no objeto LogEntry como a codificação hexadecimal de 16 caracteres do ID do período. Por exemplo, para associar uma entrada de registro a um período com um ID de 74, defina o ID do período como 000000000000004a.

Para indicar que você está usando a amostragem de trace e que o trace foi amostrado para armazenamento quando a entrada de registro foi gravada, defina o campo traceSampled no objeto LogEntry. Quando você usa a amostragem de traces, é possível que uma entrada de registro seja criada quando o próprio trace não for capturado.

Associar automaticamente uma entrada de registro a um trace ou período

Ao usar as bibliotecas de cliente do Cloud Logging, em alguns casos, os campos de rastreamento em uma entrada de registro podem ser definidos automaticamente. Os valores definidos manualmente têm precedência sobre os valores definidos automaticamente.

Por exemplo, se você estiver usando o OpenTelemetry e geração de registros de um período ativo do OpenTelemetry, e os campos de rastreamento na entrada de registro são preenchidos usando as tabelas OpenTelemetry Contexto.

Como alternativa, em alguns casos, quando uma solicitação HTTP está presente, os campos de rastreamento podem ser definidos no campo W3C traceparent ou no valor X-Cloud-Trace-Context na solicitação HTTP.

Para mais informações sobre o preenchimento automático de campos de rastreamento em entradas de registro, consulte a seguinte documentação da biblioteca de cliente específica da linguagem:

Como ver registros

É possível ver a entrada de registro de um trace ao lado do gráfico de cascata ou no Explorador de registros. Quando você usa o Explorador de registros, ele é automaticamente restrito ao intervalo de carimbo de data/hora do trace. Se não houver entradas de registro a serem exibidas, o Explorador de registros exibirá a mensagem No entries found matching current filter.

No painel Detalhes do trace, para visualizar a entrada de registro do trace, siga um destes procedimentos:

  • Para exibir as entradas de registro de trace ao lado do gráfico de cascata, acesse o gráfico de cascata e clique em Mostrar registros. Quando Mostrar registros não for exibido, nenhuma entrada de registro estará disponível.

  • Para visualizar a entrada de registro no Explorador de registros, clique em Visualizar ao lado do rótulo Registro na seção Detalhes. Quando você tiver um trace do Cloud Load Balancing, clique em Visualizar ao lado do rótulo Registro da VM.

Para mais informações sobre como visualizar entradas de registro no Cloud Logging, consulte Como usar a Análise de registros.

Permissões para visualização de registros

Para ver as entradas de registro, você precisa ter a permissão logging.logEntries.list no projeto. Essa permissão é fornecida pelos papéis de gerenciamento de identidade e acesso (IAM) do Visualizador de registros e do Visualizador do projeto.

Para ver os registros da instância de VM, você precisa ter a permissão compute.instances.get no projeto. Essa permissão é oferecida pelos papéis do IAM do Visualizador de rede do Compute Engine e do Visualizador do projeto.