Criar gráficos com os resultados da consulta SQL

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

Depois de executar uma consulta, os resultados podem ser visualizados em uma tabela ou convertidos em um gráfico. A consulta e a visualização 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 detalhe 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 um detalhamento por gravidade.

Antes de começar

Esta seção descreve as etapas que você precisa concluir antes de usar o Observability Analytics.

Configurar buckets de registros

Verifique se os buckets de registros foram atualizados para usar o Observability Analytics:

  1. No Google Cloud console, 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 tem uma visualização de registro que você quer consultar, verifique se a Observability Analytics available coluna mostra Open. Se Upgrade for mostrado, 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 permissões do IAM necessários para usar o Observability Analytics:

  • Para receber as permissões necessárias para usar o Observability Analytics e consultar visualizações de registro, 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 do papel 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 _Default bucket de registros, consulte Papéis do Cloud Logging.

  • Para receber as permissões necessárias para consultar visualizações de análise, peça ao administrador para conceder a você o papel do IAM de Usuário do Observability Analytics (roles/observability.analyticsUser) no projeto.

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

Selecionar os dados para o gráfico

Para configurar quais dados serão mostrados em um gráfico, crie uma consulta usando SQL. Quando você seleciona a guia Gráfico, um gráfico mostra os 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 visualizar dados diferentes.

Para visualizar os resultados da consulta como um gráfico, execute uma consulta fazendo o seguinte:

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

    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, na guia Resultados, selecione como você quer visualizar os resultados da consulta:

    • Tabela: somente formato tabular.

    • Gráfico: somente formato de gráfico

    • Ambos: formato de gráfico e tabular.

      Depois de selecionar como visualizar os resultados da consulta, você pode configurar todos os campos 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 selecionar quais linhas e colunas são representadas. 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

É possível personalizar a configuração do gráfico mudando o tipo, selecionando a dimensão e a medida para o gráfico e aplicando 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 que é plotada no eixo Y.

Mudar tipo de gráfico

É possível selecionar entre os seguintes tipos de gráfico, dependendo do tipo de linhas e colunas selecionadas como dimensão e medida e de como você 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 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 de dados ao longo do tempo. Ao usar 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 em um conjunto de dados se relacionam com o conjunto de dados inteiro, usando um círculo para representar o conjunto de dados inteiro e setores no círculo para representar as categorias no conjunto de dados. O tamanho de um setor indica quanto, geralmente como uma porcentagem, 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 para menos de algumas centenas.

  • Medidor ou scorecard: os medidores e os scorecards fornecem o valor mais recente, além de uma indicação verde, amarela ou vermelha com base em como esse valor é comparado a um conjunto de limites. Ao contrário dos medidores, que mostram apenas informações sobre o valor mais recente, as visões gerais também podem incluir informações sobre valores anteriores.

    Os medidores e as visões gerais 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 a consulta para agregar dados em um intervalo de tempo, para ordenar os resultados por carimbos de data/hora decrescentes e para 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 consulta uma visualização de registro, agrega dados por hora, aplica um limite e classifica os resultados:

      SELECT TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, severity, COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION.BUCKET_ID.LOG_VIEW_ID`
      WHERE severity IS NOT NULL AND severity = "DEFAULT"
      GROUP BY hour,severity
      ORDER BY hour DESC
      LIMIT 10
      

      A seguir, descrevemos o significado dos campos na expressão anterior:

      • PROJECT_ID: o identificador do projeto.
      • LOCATION: o local da visualização de registro ou da visualização de análise.
      • BUCKET_ID: o nome ou ID do bucket de registros.
      • LOG_VIEW_ID: o identificador da visualização de registro, que é limitado a 100 caracteres e pode incluir apenas letras, dígitos, sublinhados e hifens.

    • Defina a dimensão para corresponder à coluna que informa a unidade de tempo. Por exemplo, se a consulta agregar dados por uma hora e criar 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 defina a função como nenhuma.

    Se você quiser que o Observability Analytics realize 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, é possível 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 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 nenhum carimbo de data/hora estiver presente na consulta, a primeira coluna de string será selecionada como a dimensão. Também é possível personalizar a dimensão no painel Mostrar gráfico. Quando uma coluna de carimbo de data/hora é selecionada como a dimensão, o gráfico mostra como os dados mudam ao longo do tempo. Quando uma coluna de string é selecionada como a dimensão de um gráfico de barras, é possível classificar os dados em ordem crescente ou decrescente, o que classifica a dimensão por ordem lexical. Também é possível manter a ordem de classificação `default`, que classifica a dimensão com base nos valores da medida correspondente em ordem decrescente.

    Por padrão, o intervalo para carimbos de data/hora é definido automaticamente, mas também é possível 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 períodos na consulta para uma análise mais complexa. 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 Mostrar gráfico. Ao selecionar uma medida, também é necessário 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ê selecionar a caixa de seleção Desativar intervalo para a dimensão, a opção de função de agregação none 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 única série de dados em várias séries de dados 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, consulte a configuração de 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 Detalhamento está definido como gravidade:

Exemplo de gráfico com um detalhamento por gravidade.

Na captura de tela anterior, você vê uma série de dados empilhados, 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 for gerado na consulta, você poderá salvá-lo em um painel personalizado. Os painéis personalizados permitem mostrar 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.

Um painel mostra uma mensagem de aviso para um widget que contém uma consulta SQL quando a consulta é executada no mecanismo do BigQuery e os recursos consultados não estão no mesmo limite de propriedade. Os limites de propriedade são determinados por vários fatores, um dos quais é a hierarquia dos recursos usados pela consulta. Para evitar esses avisos, configure um perímetro de serviço.

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

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

    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 visualizar o painel personalizado, no pop-up, clique em Visualizar painel.

Para visualizar uma lista de painéis personalizados que contêm gráficos gerados por consultas SQL, acesse o botão Salvar gráfico e clique em Menu.

Editar um gráfico salvo em um painel personalizado

É possível modificar um gráfico depois que ele for salvo em um painel. Para mais informações, consulte Modificar a configuração de um widget. Na caixa de diálogo Configurar widget, é possível fazer o seguinte:

  • Mudar os dados consultados.
  • Editar a consulta usada para gerar um gráfico.
  • Personalizar a configuração do gráfico para visualizar dados diferentes.

Limitações

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

  • Os filtros no nível do painel não se aplicam a gráficos gerados em uma consulta SQL.

  • 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á contiver agregações, o gráfico gerado poderá ser diferente devido à agregação adicional que é aplicada automaticamente pelo Observability Analytics.

  • Os caminhos JSON precisam ser convertidos em strings ou números para serem representados.

Amostras de consultas

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

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

    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 da 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 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.

Registrar entradas de registro por local e gravidade

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

SELECT
  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,
  severity,
FROM
  `VIEW`
WHERE resource.labels.location IS NOT NULL

Um gráfico de amostra e a configuração do gráfico são semelhantes a este:

Exemplo de gráfico que mostra entradas de registro para local 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
  • Detalhamento: severity, com um limite de cinco

Criar gráficos com 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 principal 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 `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 gráfico de amostra e a configuração do gráfico são semelhantes a este:

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
  • Detalhamento: auth_permission, com um limite de cinco

A seguir