Representar os resultados da consulta SQL em um gráfico

Este documento descreve como criar gráficos com os resultados de consulta da Análise de dados de registros, que permite identificar padrões e tendências nos dados de registro. A Análise de dados de registros permite pesquisar e agregar registros para gerar insights úteis usando consultas SQL.

Depois de executar uma consulta, os resultados dela podem ser visualizados em uma tabela ou convertidos em um gráfico. Além disso, a consulta e a visualização dela podem ser salvas em um painel. Por exemplo, para saber quais tipos de gravidade seus registros estão gerando, crie um gráfico que mostre as contagens de registros gerados nas últimas 12 horas e divida os registros por severity. A captura de tela a seguir ilustra pontos de dados divididos em diferentes tipos de gravidade:

Exemplo de gráfico que ilustra uma divisão por gravidade.

Antes de começar

Esta seção descreve as etapas que você precisa concluir antes de usar a Análise de registros.

Configurar buckets de registros

Verifique se os buckets de registro foram atualizados para usar a Análise de registros:

  1. No console do Google Cloud, acesse a página Armazenamento de registros:

    Acessar o armazenamento de registros

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

  2. Para cada bucket de registros que tenha uma visualização de registro que você quer consultar, verifique se a coluna Log Analytics disponível mostra Aberto. Se a opção Upgrade for exibida, clique em Upgrade e conclua a caixa de diálogo.

Configurar papéis e permissões do IAM

Esta seção descreve os papéis ou as permissões do IAM necessários para usar o Log Analytics:

  • Para receber as permissões necessárias para usar a Análise de registros e as visualizações de registro de consulta, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:

    É possível restringir um principal a uma visualização de registro específica adicionando uma condição do IAM à concessão de função de acessador de visualização de registros feita no nível do projeto ou adicionando uma vinculação do IAM ao arquivo de política da visualização de registro. Para mais informações, consulte Controlar o acesso a uma visualização de registro.

    Essas são as mesmas permissões necessárias para visualizar entradas de registro na página Análise de registros. Para informações sobre outros papéis necessários para consultar visualizações em buckets definidos pelo usuário ou para consultar a visualização _AllLogs do bucket de registros _Default, consulte Papéis do Cloud Logging.

  • Para receber as permissões necessárias para criar gráficos, peça ao administrador para conceder a você o Editor do Monitoring (roles/monitoring.editor) do IAM no projeto.

Selecionar os dados para o gráfico

Para configurar quais dados serão exibidos em um gráfico, crie uma consulta usando o SQL. Quando você seleciona a guia Chart, o registro gera automaticamente um gráfico com base nos resultados da consulta. Depois que a consulta for executada e um gráfico for gerado, você poderá personalizar a configuração do gráfico mudando o tipo e selecionando colunas para conferir dados diferentes.

Para conferir os resultados da consulta em um gráfico, faça o seguinte:

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

    Acesse Análise de registros

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

  2. No painel Consulta, insira uma consulta e clique em Executar.

  3. Depois que a consulta for concluída, selecione na guia Resultados como você quer acessar os resultados:

    • Tabela: somente formato tabular.

    • Gráfico: somente formato de gráfico

    • Ambas: formato de gráfico e tabular.

      Depois de selecionar como visualizar os resultados da consulta, você pode configurar qualquer campo para a visualização selecionada e salvar a consulta e os resultados em um painel personalizado. O formato salvo é tabular quando você seleciona a opção Tabela. Caso contrário, o formato é um gráfico.

      Para gráficos, as opções de visualização permitem selecionar o tipo de gráfico e as linhas e colunas que serão incluídas. Para mais informações sobre a configuração do gráfico, consulte Personalizar a configuração do gráfico.

Personalizar a configuração do gráfico

Para personalizar a configuração do gráfico, mude o tipo, selecione a dimensão e a métrica e aplique um detalhamento. A dimensão é usada para agrupar ou categorizar linhas e é o valor do eixo X. A medida, ou o valor do eixo Y, é uma série de dados plotada em relação ao eixo Y.

Mudar o tipo de gráfico

Você pode selecionar entre os seguintes tipos de gráficos, dependendo do tipo de linhas e colunas que você selecionou como dimensão e medida e como quer que esses dados sejam visualizados.

  • Gráfico de barras (padrão): os gráficos de barras representam dados em dois eixos. Se o gráfico usar uma categoria ou string como a dimensão, você poderá definir a configuração do gráfico de barras como horizontal ou vertical, em que os eixos de dimensão e medida são trocados.

  • Gráfico de linhas: os gráficos de linhas podem ser usados para mostrar mudanças nos dados ao longo do tempo. Quando você usa um gráfico de linhas, cada série temporal é mostrada por uma linha diferente que corresponde às medidas selecionadas.

    Se o eixo X for baseado no tempo, cada ponto de dados será colocado no início de um intervalo de tempo. Cada ponto de dados é conectado por interpolação linear.

  • Gráfico de área empilhada: um gráfico de área é baseado em um gráfico de linhas, e a área abaixo de cada linha é sombreada. Nos gráficos de área, as séries de dados são empilhadas. Por exemplo, se você tiver duas séries idênticas, elas vão se sobrepor em um gráfico de linhas, mas a área sombreada será empilhada em um gráfico de área.

  • Gráfico de pizza ou de rosca: um gráfico de pizza mostra como as categorias de um conjunto de dados se relacionam a ele, usando um círculo para representar o conjunto de dados inteiro e fatias no círculo para representar as categorias no conjunto de dados. O tamanho de uma fatia indica a porcentagem que a categoria contribui para o todo.

  • Tabela: uma tabela mostra uma linha para cada linha no resultado da consulta. As colunas na tabela são definidas pela cláusula SELECT. Se você planeja mostrar dados em formato tabular em um painel, use uma cláusula LIMIT para restringir o número de linhas no resultado a menos de algumas centenas.

  • Medidor ou visão geral: os medidores e as visões gerais mostram o valor mais recente com uma indicação verde, âmbar ou vermelha com base na comparação desse valor com um conjunto de limites. Ao contrário dos indicadores, que mostram apenas informações sobre o valor mais recente, os cards de indicadores também podem incluir informações sobre valores anteriores.

    Os indicadores e os scorecards só podem mostrar o resultado da consulta quando ele contém pelo menos uma linha e essa linha contém uma coluna com um carimbo de data/hora e uma coluna com dados numéricos. O resultado da consulta pode conter várias linhas e mais de duas colunas.

    Se você quiser realizar a agregação baseada em tempo como parte da consulta, faça o seguinte:

    • Configure sua consulta para agregar dados em um intervalo de tempo, ordenar os resultados por carimbos de data/hora decrescentes e limitar o número de linhas nos resultados. É possível usar a cláusula LIMIT ou o seletor de período para limitar o número de linhas no resultado da consulta.

      Por exemplo, a consulta a seguir agrega dados por hora, aplica um limite e classifica os resultados:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `TABLE_NAME_OF_LOG_VIEW`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10
      
    • Defina a dimensão para corresponder à coluna que informa a unidade de tempo. Por exemplo, se a consulta agrega dados por uma hora e cria uma coluna chamada hour, defina o menu Dimensão como hour.

    • Selecione Desativar intervalo porque a consulta já especifica o intervalo de agregação. No exemplo, esse intervalo é de uma hora.

    • Defina a Medida como a coluna numérica e a função como nenhuma.

    Se você quiser usar a Análise de registros para realizar a agregação baseada em tempo, faça o seguinte:

    • Configure o seletor de período, que afeta o número de linhas no resultado da consulta.
    • Defina a dimensão para corresponder à coluna que informa a unidade de tempo. Por exemplo, você pode definir esse menu como timestamp.
    • Defina o menu Intervalo como o intervalo de agregação para um intervalo específico. Por exemplo, defina o valor desse campo como 1 hour. Não selecione Intervalo automático.
    • Defina a Medida como a coluna numérica e selecione uma função, como soma.

Mudar dimensão e medida

É possível escolher quais linhas e colunas são representadas em um gráfico selecionando os campos de dimensão e medida.

  • Dimensão

    A dimensão precisa ser uma coluna de carimbo de data/hora, numérica ou de string. Por padrão, a dimensão é definida como a primeira coluna baseada em carimbo de data/hora no esquema. Se não houver um carimbo de data/hora na consulta, a primeira coluna de string será selecionada como a dimensão. Também é possível personalizar a dimensão no painel Exibição do gráfico. Quando uma coluna de carimbo de data/hora é selecionada como dimensão, o gráfico mostra como os dados mudam com o tempo.

    Por padrão, o intervalo de carimbos de data/hora é definido automaticamente, mas você também pode selecionar um intervalo personalizado. Os intervalos automáticos mudam os valores com base no seletor de período para manter grupos de tamanho semelhante.

    Também é possível desativar o intervalo, o que permite especificar suas próprias agregações e intervalos de tempo na consulta para análises mais complexas. A desativação do intervalo define a função de agregação das medidas como none. Somente medidas numéricas são permitidas quando o intervalo de dimensão está desativado.

  • Medida

    É possível selecionar várias medidas no painel Exibição do gráfico. Ao selecionar uma medida, você também precisa selecionar a função de agregação a ser realizada nos valores agrupados, como count, sum, average e percentile-99. Por exemplo, count-distinct retorna o número de valores exclusivos em uma determinada coluna.

    Se você marcar a caixa de seleção Desativar intervalo para a dimensão, a opção de função de agregação none vai estar disponível. Se a dimensão for um valor de string, a caixa de seleção Desativar intervalo não será mostrada. No entanto, definir as funções de agregação de uma medida como none também desativa o intervalo.

Adicionar um detalhamento

Para dividir uma série de dados em várias séries com base em outra coluna, adicione um detalhamento.

Ao selecionar um detalhamento, escolha colunas que contenham um pequeno número de rótulos curtos e significativos, como region_name, em vez de campos que possam conter um grande número de strings ou strings longas, como textPayload.

Por exemplo, confira a configuração do gráfico a seguir, em que o campo Dimensão está definido como tipo, o campo Medida está definido como Contar linhas e o campo Detalhe está definido como gravidade:

Exemplo de configuração de gráfico que adiciona um detalhamento.

O gráfico a seguir é um exemplo de um gráfico com um detalhamento adicionado:

Exemplo de gráfico que contém um detalhamento por gravidade.

Na captura de tela anterior, você vê uma série de dados empilhada, em que o tipo de recurso k8s_container é dividido em diferentes tipos de severity. Isso permite identificar quantos registros de cada tipo de gravidade foram gerados por um determinado recurso.

Salvar um gráfico em um painel personalizado

Depois que um gráfico é gerado com base na consulta, é possível salvá-lo em um painel personalizado. Com os painéis personalizados, você pode exibir e organizar informações úteis usando vários tipos de widgets. Esses painéis também permitem definir variáveis, que são filtros no nível do painel que se aplicam apenas a widgets específicos. Para aplicar uma variável a um widget, é necessário modificar a consulta. Para mais informações, consulte Aplicar uma variável a um widget.

Por exemplo, é possível criar um painel que mostra detalhes sobre o uso dos buckets do Cloud Storage:

Exemplo de painel que mostra o uso dos seus buckets do Cloud Storage.

Para salvar o gráfico em um painel, faça o seguinte:

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

    Acesse Análise de registros

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

  2. Execute uma consulta para gerar um gráfico e clique em Salvar gráfico na guia Gráfico.

  3. Na caixa de diálogo Salvar no painel, insira um título para o gráfico e selecione o painel em que você quer salvar o gráfico.

  4. Opcional: para conferir o painel personalizado, na mensagem, clique em Ver painel.

Para conferir uma lista de painéis personalizados com gráficos gerados por consultas SQL do Log Analytics, acesse o botão Save Chart e clique em Menu.

Editar um gráfico salvo em um painel personalizado

Para editar gráficos gerados por consultas SQL do Log Analytics que são salvos em um painel, consulte Modificar a configuração de um widget. Na caixa de diálogo Configurar widget, é possível editar a consulta usada para gerar um gráfico ou personalizar a configuração dele para visualizar dados diferentes.

Limitações

  • Se o projeto do Google Cloud estiver em uma pasta que usa o Assured Workloads, os gráficos gerados não poderão ser exibidos em um painel personalizado.

  • Os filtros no nível do painel não se aplicam aos gráficos gerados a partir de uma consulta SQL da Análise de registros.

Amostras de consultas

Esta seção apresenta exemplos de consultas SQL para gerar gráficos com os resultados da consulta. Para ter insights mais úteis dos seus registros, personalize a configuração do gráfico. Para usar as consultas de amostra, faça o seguinte:

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

    Acesse Análise de registros

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

  2. Identifique o nome da tabela para a visualização de registro que você quer consultar.

    Para identificar esse nome, acesse a lista Visualizações de registro, localize a visualização de registro e selecione Consulta. O painel Consulta é preenchido com uma consulta padrão, que inclui o nome da tabela da visualização de registro consultada. O nome da tabela tem o formato project_ID.region.bucket_ID.view_ID.

    Para mais informações sobre como acessar a consulta padrão, consulte Consultar uma visualização de registro.

  3. Substitua TABLE_NAME_OF_LOG_VIEW pelo nome da tabela da visualização de registro que você quer consultar e copie a consulta.

  4. Cole a consulta no painel Consulta e clique em Executar consulta.

Mostrar entradas de registro em um gráfico por local e gravidade

A consulta a seguir seleciona location e severity, com o local convertido em uma string:

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `TABLE_NAME_OF_LOG_VIEW`

Um exemplo de gráfico e configuração de gráfico é mostrado abaixo:

Exemplo de gráfico que mostra as entradas de registro de localização e gravidade.

Na captura de tela anterior, a configuração do gráfico tem a seguinte configuração:

  • Tipo de gráfico: gráfico de barras, horizontal
  • Dimensão: location, com um limite de 10
  • Medida: contar linhas
  • Detalhes: severity, com um limite de cinco

Gerar um gráfico dos registros de auditoria de acesso a dados do BigQuery

A consulta a seguir filtra os registros de auditoria data_access do BigQuery e seleciona determinados campos, como user_email, ip, auth_permission e job_execution_project. Por exemplo, é possível criar um gráfico que mostre a frequência de uso da API BigQuery de cada titular ao longo do tempo.

SELECT
  timestamp,
  proto_payload.audit_log.authentication_info.principal_email as user_email,
  proto_payload.audit_log.request_metadata.caller_ip as ip,
  auth.permission as auth_permission,
  auth.granted as auth_granted,
  JSON_VALUE(data_access.resource.labels.project_id) AS job_execution_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(1)] AS referenced_project,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(3)] AS referenced_dataset,
  SPLIT(proto_payload.audit_log.resource_name, '/')[SAFE_OFFSET(5)] AS referenced_table
FROM `TABLE_NAME_OF_LOG_VIEW` as data_access,
  UNNEST(proto_payload.audit_log.authorization_info) AS auth
WHERE
  log_id="cloudaudit.googleapis.com/data_access"
  AND data_access.resource.type = 'bigquery_dataset'

Um exemplo de gráfico e configuração de gráfico é mostrado abaixo:

Exemplo de gráfico para registros de auditoria de acesso a dados do BigQuery

Na captura de tela anterior, a configuração do gráfico tem a seguinte configuração:

  • Tipo de gráfico: gráfico de barras, vertical
  • Dimensão: user_email, com um limite de cinco
  • Medida: contar linhas
  • Detalhes: auth_permission, com um limite de cinco

Limitações

  • As colunas selecionadas precisam ter pelo menos uma linha com um valor não nulo.

  • Se você salvar uma consulta e personalizar a configuração do gráfico, a configuração do gráfico personalizado não será salva.

  • Se a consulta já tiver agregações, o gráfico gerado poderá ser diferente devido a uma agregação adicional aplicada automaticamente pela Análise de dados de registros.

  • Os caminhos JSON precisam ser convertidos em strings e números para serem incluídos no gráfico.

A seguir