Consultar e analisar rastreamentos

Com a Análise de Observabilidade, é possível executar consultas SQL nos dados do Cloud Trace para descobrir tendências de desempenho, gerar insights agregados e visualizar resultados em gráficos e tabelas. As consultas são executadas na visualização padrão _AllSpans, que inclui todos os dados de trace armazenados pelo projeto, e é possível salvar os resultados em painéis personalizados.

Se você quiser inspecionar traces, períodos ou atributos de período individuais, use a página Explorador de traces. Para mais informações, consulte Encontrar e explorar traces.

Sobre os conjuntos de dados vinculados do BigQuery

Não é necessário ter um conjunto de dados vinculado do BigQuery para consultar seus dados de trace ou de trace e registro. Nesses cenários, use a página Análise de Observabilidade. Para informações sobre como consultar dados de registro, consulte Consultar e analisar registros com a Análise de Observabilidade.

Você precisa de um conjunto de dados vinculado do BigQuery quando quiser fazer o seguinte:

Este documento não descreve como criar um conjunto de dados vinculado do BigQuery nem como configurar a Análise de Observabilidade para executar consultas no mecanismo do BigQuery. Para mais informações sobre esses tópicos, consulte Criar um conjunto de dados vinculado do BigQuery e Executar consultas de trace no mecanismo do BigQuery.

Antes de começar

  1. Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Observability API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Observability API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. Para receber as permissões necessárias para carregar a página Análise de Observabilidade, gravar, executar e salvar consultas particulares nos dados de trace, peça ao administrador para conceder a você os seguintes papéis do IAM:

    • Acessador de visualização de observabilidade (roles/observability.viewAccessor) nas visualizações de observabilidade que você quer consultar. Esse papel é compatível com as condições do IAM, que permitem restringir a concessão a uma visualização específica. Se você não anexar uma condição à concessão do papel, o principal poderá acessar todas as visualizações de observabilidade.
    • Usuário do Analytics de Observabilidade (roles/observability.analyticsUser) no seu projeto. Esse papel contém as permissões necessárias para salvar e executar consultas particulares e compartilhadas.

    Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Mostrar o esquema

O esquema define como os dados são armazenados, o que inclui os campos e os tipos de dados. Essas informações são importantes porque o esquema determina os campos que você consulta e se é necessário converter campos em tipos de dados diferentes. Por exemplo, para escrever uma consulta que calcula a latência média de solicitações HTTP, é preciso saber como acessar o campo de latência e se ele é armazenado como um número inteiro, como 100, ou como uma string, como "100". Se os dados de latência forem armazenados como uma string, a consulta precisará converter o valor em um valor numérico antes de calcular uma média.

Para identificar o esquema, faça o seguinte:

  1. No console Google Cloud , acesse a página Análise de observabilidade:

    Acessar a análise de observabilidade

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. No menu Visualizações, acesse a seção Traces e selecione _Trace.Spans._AllSpans.

    O painel Esquema é atualizado. A Análise de Observabilidade infere automaticamente os campos de uma coluna quando o tipo de dados é JSON. Para ver com que frequência esses campos inferidos aparecem nos dados, clique em Opções e selecione Ver informações e descrição.

    Para aprender mais sobre o esquema, consulte Esquema de armazenamento para dados de trace.

    Se você não encontrar uma visualização chamada _Trace.Spans._AllSpans, seu projeto doGoogle Cloud não contém um bucket de observabilidade chamado _Trace. Para saber como resolver essa falha, consulte Falha na inicialização do armazenamento de trace.

Consultar dados de trace

Nesta seção, descrevemos as abordagens que podem ser usadas para consultar os dados de trace:

  • Carregar uma consulta definida pelo sistema, editá-la e executá-la.
  • Insira e execute uma consulta personalizada. Por exemplo, você pode colar uma consulta que já tem ou escrever uma. As consultas personalizadas podem incluir mesclagens, consultas aninhadas e outras instruções SQL complexas. Para ver exemplos, consulte Exemplos de consultas SQL.
  • Crie uma consulta fazendo seleções no menu e execute-a. A Análise de Observabilidade converte suas seleções em uma consulta SQL, que pode ser visualizada e editada.

Carregar, editar e executar a consulta definida pelo sistema

  1. No console Google Cloud , acesse a página Análise de observabilidade:

    Acessar a análise de observabilidade

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. No menu Visualizações, acesse a seção Traces e selecione _Trace.Spans._AllSpans.

    Se você não encontrar uma visualização chamada _Trace.Spans._AllSpans, seu projeto doGoogle Cloud não contém um bucket de observabilidade chamado _Trace. Para saber como resolver essa falha, consulte Falha na inicialização do armazenamento de trace.

  3. Escolha uma destas opções:

    • Para carregar uma consulta definida pelo sistema que depende do Criador de consultas, que permite definir a consulta com seleções de menu, verifique se o painel Consulta exibe Criador de consultas. Se um editor de SQL for mostrado, clique em  Builder.

    • Para carregar uma consulta definida pelo sistema que extrai valores JSON, verifique se o painel Consulta exibe o editor SQL. Se esse painel mostrar Criador de consultas, clique em  SQL.

  4. No painel Esquema, selecione Consulta e clique em Substituir.

    O painel Consulta mostra uma consulta definida pelo sistema. Se você selecionou o modo Criador de consultas, mas quer ver a consulta SQL, clique em  SQL.

  5. Opcional: modifique a consulta.

  6. Para executar a consulta, acesse a barra de ferramentas e selecione Executar consulta.

    A Análise de Observabilidade apresenta os resultados da consulta em uma tabela. No entanto, é possível criar um gráfico e salvar a tabela ou o gráfico em um painel personalizado. Para mais informações, consulte Resultados da consulta SQL do gráfico.

    Se a barra de ferramentas exibir Executar no BigQuery, será necessário alternar a Análise de Observabilidade para usar o mecanismo de consulta padrão. Para fazer essa mudança, na barra de ferramentas do painel Consulta, clique em Configurações e selecione Análise (padrão).

Inserir e executar uma consulta personalizada

Para inserir uma consulta SQL, faça o seguinte:

  1. No console Google Cloud , acesse a página Análise de observabilidade:

    Acessar a análise de observabilidade

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. No painel Consulta, clique em  SQL.

    • Para especificar um período, recomendamos que você use o seletor de período. Se você adicionar uma cláusula WHERE que especifique o campo timestamp, esse valor vai substituir a configuração no seletor de período, e esse seletor será desativado.

    • Para ver exemplos, consulte Exemplos de consultas SQL.

    • O editor SQL exibe o nome totalmente qualificado da visualização _Trace.Spans._AllSpans, que tem o seguinte formato:

      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`

      Os campos na expressão anterior têm o seguinte significado:

      Se o painel de consulta exibir uma mensagem de erro que faz referência à instrução FROM, isso significa que a visualização não foi encontrada. Para saber como resolver essa falha, consulte Mensagem de erro informando que uma visualização não existe.

  3. Para executar a consulta, acesse a barra de ferramentas e selecione Executar consulta.

    A Análise de Observabilidade apresenta os resultados da consulta em uma tabela. No entanto, é possível criar um gráfico e salvar a tabela ou o gráfico em um painel personalizado. Para mais informações, consulte Resultados da consulta SQL do gráfico.

    Se a barra de ferramentas exibir Executar no BigQuery, será necessário alternar a Análise de Observabilidade para usar o mecanismo de consulta padrão. Para fazer essa mudança, na barra de ferramentas do painel Consulta, clique em Configurações e selecione Análise (padrão).

Criar, editar e executar uma consulta

A interface do Criador de consultas permite criar uma consulta fazendo seleções nos menus. A Análise de Observabilidade converte suas seleções em uma consulta SQL, que pode ser visualizada e editada. Por exemplo, você pode começar usando a interface do Criador de consultas e depois mudar para o editor de SQL para refinar a consulta.

A Análise de Observabilidade sempre pode converter as seleções de menu da interface do Criador de Consultas em uma consulta SQL. No entanto, nem todas as consultas SQL podem ser representadas pela interface do Criador de consultas. Por exemplo, consultas com mesclagens não podem ser representadas por essa interface.

Para criar uma consulta, faça o seguinte:

  1. No console Google Cloud , acesse a página Análise de observabilidade:

    Acessar a análise de observabilidade

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Se o painel Consulta exibir um editor de SQL, selecione Criador, que abre o painel Criador de consultas.

  3. Use o menu Origem para selecionar a visualização que você quer consultar. Suas seleções são mapeadas para a cláusula FROM na consulta SQL.

  4. Opcional: use os seguintes menus para restringir ou formatar a tabela de resultados:

    • Pesquisar todos os campos: procure strings correspondentes. Suas seleções são mapeadas para a cláusula WHERE na consulta SQL.

    • Colunas: selecione as colunas que aparecem na tabela de resultados. Suas seleções são mapeadas para as cláusulas SELECT na consulta SQL.

      Quando você seleciona um nome de campo nesse menu, uma caixa de diálogo é aberta. Nessa caixa de diálogo, você pode fazer o seguinte:

      • Use o menu para agregar ou agrupar seus dados.

        Para evitar erros de sintaxe, qualquer agregação e agrupamento que você aplicar a uma coluna também será aplicado automaticamente a outras colunas. Para ver um exemplo de como agregar e agrupar entradas, consulte Agrupar e agregar dados usando o Criador de Consultas.

      • Converte um valor de qualquer tipo em outro tipo de dados especificado. Para mais informações, consulte a documentação CAST.

      • Extraia uma substring de valores usando expressões regulares. Para mais informações, consulte a documentação REGEXP_EXTRACT.

    • Filtros: adicione filtros quando quiser restringir a consulta a períodos que contenham um atributo ou ID de período específico. O menu lista todas as opções de filtro disponíveis. Suas seleções são mapeadas para a cláusula WHERE na consulta SQL.

    • Classificar por: defina as colunas para classificação e se ela é crescente ou decrescente. Suas seleções são mapeadas para a cláusula ORDER BY na consulta SQL.

    • Limite: defina o número máximo de linhas na tabela de resultados. Suas seleções são mapeadas para a cláusula LIMIT na consulta SQL.

  5. Para executar a consulta, acesse a barra de ferramentas e selecione Executar consulta.

    A Análise de Observabilidade apresenta os resultados da consulta em uma tabela. No entanto, é possível criar um gráfico e salvar a tabela ou o gráfico em um painel personalizado. Para mais informações, consulte Resultados da consulta SQL do gráfico.

    Se a barra de ferramentas exibir Executar no BigQuery, será necessário alternar a Análise de Observabilidade para usar o mecanismo de consulta padrão. Para fazer essa mudança, na barra de ferramentas do painel Consulta, clique em Configurações e selecione Análise (padrão).

Exemplo: agrupar e agregar dados usando o Criador de Consultas

Ao selecionar uma coluna no Criador de Consultas, cada campo inclui um menu em que é possível adicionar agrupamento e agregação. O agrupamento permite organizar os dados em grupos com base no valor de uma ou mais colunas, e a agregação permite realizar cálculos nesses grupos para retornar um único valor.

Cada campo selecionado no elemento Colunas tem um menu anexado com as seguintes opções:

  • Nenhum: não agrupar nem agregar por esse campo.
  • Agregação: agrupa os campos listados no elemento Colunas, exceto quando o campo tem uma seleção de Agregação. Para esses campos, calcule o valor realizando uma operação em todas as entradas de cada agrupamento. A operação pode ser calcular a média de um campo ou fazer algo como contar o número de entradas em cada agrupamento.
  • Agrupar por: agrupa as entradas por todos os campos listados no elemento Colunas.

Neste exemplo, mostramos como usar o Criador de consultas para agrupar períodos por horário de início, nome e tipo e, em seguida, calcular a duração média em nanossegundos para cada grupo:

  1. No menu Colunas, selecione os campos start_time, name, kind e duration_nano.
  2. Para truncar o horário de início para a hora, abra o menu na coluna start_time e selecione Agrupar por. Verifique se o menu de granularidade está definido como Hora.
  3. Clique em Aplicar.

    Quando você seleciona Agrupar por para qualquer coluna, o sistema agrupa as entradas por todas as colunas. Neste exemplo, as entradas são agrupadas pelo valor truncado de start_time, pelo nome do período, pelo tipo de período e pelo valor da duração.

    No entanto, o objetivo deste exemplo é agrupar as entradas pelo tempo truncado, pelo nome do período e pelo tipo de período e, em seguida, para cada grupo, calcular a duração média. Na próxima etapa, você vai modificar o agrupamento e adicionar uma agregação.

  4. Abra o menu no campo duration_nano, selecione Agregar e defina o campo Agregação como Média.

    Quando você executa a consulta, cada linha corresponde a um grupo, que consiste em um horário truncado, um nome de período e um tipo de período. A entrada final em cada linha é a duração média de todas as entradas desse grupo.

    O resultado dessa consulta é semelhante ao seguinte:

    +-----------------------------------+----------------+----------+-----------------------+
    | Row | hour_timestamp              | span_name      | kind     | average_duration_nano |
    |     | TIMESTAMP                   | STRING         | INTEGER  | FLOAT                 |
    +-----+-----------------------------+-----------+---------------+-----------------------+
    | 1   | 2025-10-09 13:00:00.000 EDT | http.receive   | 3        | 122138.22813990474
    | 2   | 2025-10-09 13:00:00.000 EDT | query.request  | 1        | 6740819304.390297
    | 3   | 2025-10-09 13:00:00.000 EDT | client.handler | 2        | 6739339098.409376
    
  5. Sua consulta pode incluir várias agregações. Por exemplo, para adicionar uma coluna que conta o número de entradas em cada grupo, faça o seguinte:

    1. No elemento Colunas, clique em Adicionar coluna.
    2. Selecione Todas (*).
    3. Na caixa de diálogo, selecione Agregar, selecione Contagem para a Agregação e selecione Aplicar.

    Com essa mudança, o agrupamento permanece o mesmo. As entradas são agrupadas pelo horário de início truncado, pelo nome do período e pelo tipo de período. No entanto, para cada grupo, a consulta calcula a duração média e o número de entradas.

A consulta SQL correspondente ao exemplo anterior é a seguinte:

WITH
  scope_query AS (
  SELECT
    *
  FROM
    `PROJECT_ID.us._Trace.Spans._AllSpans` )
SELECT
  -- Report the truncated start time, span name, span kind, average duration and number
  -- of entries for each group.
  TIMESTAMP_TRUNC( start_time, HOUR ) AS hour_start_time,
  name AS span_name,
  kind,
  AVG( duration_nano ) AS average_duration_nano,
  COUNT( * ) AS count_all
FROM
  scope_query
GROUP BY
  TIMESTAMP_TRUNC( start_time, HOUR ),
  name,
  kind
LIMIT
  100

A seguir