Represente graficamente os resultados de consultas SQL

Este documento descreve como criar gráficos com os resultados da consulta do Log Analytics, o que lhe permite identificar padrões e tendências nos dados de registo. A análise de registos permite-lhe pesquisar e agregar registos para gerar estatísticas úteis através de consultas SQL.

Depois de executar uma consulta, os resultados da consulta podem ser vistos numa tabela ou convertidos num gráfico. Além disso, a consulta e a respetiva visualização podem ser guardadas num painel de controlo. Por exemplo, para ver que tipos de gravidade os seus registos estão a gerar, crie um gráfico que apresente as contagens de registos gerados nas últimas 12 horas e discrimine os registos por severity. A captura de ecrã seguinte ilustra os pontos de dados divididos em diferentes tipos de gravidade:

Exemplo de um gráfico que ilustra uma discriminação por gravidade.

Antes de começar

Esta secção descreve os passos que tem de concluir antes de poder usar a Log Analytics.

Configure contentores de registos

Certifique-se de que os contentores de registos foram atualizados para usar o Log Analytics:

  1. Na Google Cloud consola, aceda à página Armazenamento de registos:

    Aceda a Armazenamento de registos

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. Para cada contentor de registos que tenha uma visualização de registos que quer consultar, certifique-se de que a coluna Log Analytics disponível apresenta Abrir. Se for apresentado o botão Atualizar, clique nele e preencha a caixa de diálogo.

Configure funções e autorizações do IAM

Esta secção descreve as funções ou as autorizações da IAM necessárias para usar o Log Analytics:

  • Para receber as autorizações de que precisa para usar o Log Analytics e consultar visualizações de registos, peça ao seu administrador que lhe conceda as seguintes funções de IAM no seu projeto:

    Pode restringir um principal a uma vista de registos específica adicionando uma condição de IAM à concessão da função Logs View Accessor feita ao nível do projeto ou adicionando uma associação de IAM ao ficheiro de política da vista de registos. Para mais informações, consulte o artigo Controle o acesso a uma vista de registo.

    Estas são as mesmas autorizações de que precisa para ver entradas de registo na página do Explorador de registos. Para ver informações sobre funções adicionais necessárias para consultar visualizações em contentores definidos pelo utilizador ou para consultar a visualização _AllLogs do contentor de registos _Default, consulte Funções do Cloud Logging.

  • Para receber as autorizações de que precisa para consultar visualizações de propriedade do Analytics, peça ao seu administrador para lhe conceder a função de IAM Utilizador do Observability Analytics (roles/observability.analyticsUser) no seu projeto.

  • Para receber as autorizações de que precisa para criar gráficos, peça ao seu administrador para lhe conceder a função de IAM Editor de monitorização (roles/monitoring.editor) no seu projeto.

Selecione os dados a representar no gráfico

Para configurar os dados a apresentar num gráfico, crie uma consulta através de SQL. Quando seleciona o separador Gráfico, é apresentado um gráfico com os resultados da consulta. Depois de executar a consulta e gerar um gráfico, pode personalizar a configuração do gráfico alterando o tipo de gráfico e selecionando colunas para ver dados diferentes.

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

  1. Na Google Cloud consola, aceda à página Log Analytics:

    Aceda ao Log Analytics

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. No painel Consulta, introduza uma consulta e, de seguida, clique em Executar.

  3. Após a conclusão da consulta, no separador Resultados, selecione como quer ver os resultados da consulta:

    • Tabela: apenas formato tabular.

    • Gráfico: apenas formato de gráfico

    • Ambos: formato de gráfico e tabular.

      Depois de selecionar como ver os resultados da consulta, pode configurar quaisquer campos para a visualização selecionada e, em seguida, guardar a consulta e os resultados num painel de controlo personalizado. O formato guardado é tabular quando seleciona a opção Tabela. Caso contrário, o formato é um gráfico.

      Para os gráficos, as opções de visualização permitem-lhe selecionar o tipo de gráfico e selecionar as linhas e as colunas que são representadas no gráfico. Para mais informações acerca da configuração do gráfico, consulte Personalize a configuração do gráfico.

Personalize a configuração do gráfico

Pode personalizar a configuração do gráfico alterando o tipo de gráfico, selecionando a dimensão e a medida a representar no gráfico e aplicando uma discriminação. 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 representada em função do eixo Y.

Alterar tipo de gráfico

Pode selecionar entre os seguintes tipos de gráficos, consoante o tipo de linhas e colunas que selecionou como dimensão e medida, e como quer que esses dados sejam visualizados.

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

  • Gráfico de linhas: os gráficos de linhas podem ser usados para mostrar alterações de dados ao longo do tempo. Quando usa um gráfico de linhas, cada série cronológica é apresentada por uma linha diferente que corresponde às medidas que selecionou.

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

  • Gráfico de áreas sobrepostas: um gráfico de áreas baseia-se num gráfico de linhas e a área abaixo de cada linha é sombreada. Nos gráficos de áreas, as séries de dados são empilhadas. Por exemplo, se tiver duas séries idênticas, as séries sobrepõem-se num gráfico de linhas, mas a área sombreada é empilhada num gráfico de áreas.

  • Gráfico circular ou de anel: um gráfico circular mostra como as categorias num conjunto de dados se relacionam com o conjunto de dados completo, usando um círculo para representar o conjunto de dados completo e cunhas no círculo para representar as categorias no conjunto de dados. O tamanho de uma fatia indica a contribuição da categoria para o todo, muitas vezes como uma percentagem.

  • 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 planeia apresentar dados em formato tabular num painel de controlo, use uma cláusula LIMIT para restringir o número de linhas no resultado a menos de algumas centenas.

  • Indicador ou tabela de dados: os indicadores e as tabelas de dados fornecem-lhe o valor mais recente juntamente 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 apenas mostram informações sobre o valor mais recente, as tabelas de dados também podem incluir informações sobre valores anteriores.

    Os indicadores e os cartões de pontuação só podem apresentar o resultado da consulta quando o resultado da consulta contém, pelo menos, uma linha e essa linha contém uma coluna com uma data/hora e uma coluna com dados numéricos. O resultado da consulta pode conter várias linhas e mais de duas colunas.

    Se quiser fazer a agregação baseada no tempo como parte da sua consulta, faça o seguinte:

    • Configure a sua consulta para agregar dados num intervalo de tempo, ordenar os resultados por data/hora descendente e limitar o número de linhas nos resultados. Pode usar a cláusula LIMIT ou o seletor de intervalo de tempo para limitar o número de linhas no resultado da consulta.

      Por exemplo, a seguinte consulta uma vista de registo e agrega dados por hora, aplica um limite e ordena 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, é descrito o significado dos campos na expressão anterior:

      • PROJECT_ID: o identificador do projeto.
      • LOCATION: a localização da vista de registo ou da vista de estatísticas.
      • BUCKET_ID: o nome ou o ID do contentor de registos.
      • LOG_VIEW_ID: o identificador da vista de registo, que está limitado a 100 carateres e só pode incluir letras, dígitos, sublinhados e hífenes.

    • Defina a Dimensão para corresponder à coluna que comunica a unidade de tempo. Por exemplo, se a sua consulta agregar dados por uma hora e criar uma coluna denominada hour, defina o menu Dimensão como hour.

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

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

    Se quiser usar o Log Analytics para fazer a agregação baseada no tempo, faça o seguinte:

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

Altere a dimensão e a medida

Pode escolher as linhas e as colunas representadas no gráfico selecionando os campos de dimensão e de medida.

  • Dimensão

    A dimensão tem de ser uma coluna de data/hora, numérica ou de string. Por predefinição, a dimensão é definida como a primeira coluna baseada na data/hora no esquema. Se não existir nenhuma data/hora na consulta, a primeira coluna de string é selecionada como a dimensão. Também pode personalizar a dimensão no painel Apresentação do gráfico. Quando uma coluna 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, pode ordenar os dados por ordem ascendente ou descendente, o que ordena a dimensão por ordem lexical. Também pode manter a ordem de classificação `predefinida`, que classifica a dimensão com base nos valores da medida correspondente por ordem descendente.

    Por predefinição, o intervalo das indicações de tempo é definido automaticamente, mas também pode selecionar um intervalo personalizado. Os intervalos automáticos alteram os valores com base no seletor do intervalo de tempo para manter grupos de tamanho semelhante.

    Também pode desativar o intervalo, o que lhe permite especificar as suas próprias agregações e intervalos de tempo na consulta para uma análise mais complexa. Se desativar o intervalo, a função de agregação das medidas é definida como none. Só são permitidas métricas numéricas quando o intervalo de dimensões está desativado.

  • Medida

    Pode selecionar várias medidas no painel Apresentação do gráfico. Quando seleciona uma métrica, também tem de selecionar a função de agregação a aplicar aos respetivos valores agrupados, como count, sum, average e percentile-99. Por exemplo, count-distinct devolve o número de valores únicos numa determinada coluna.

    Se selecionar a caixa de verificação Desativar intervalo para a dimensão, a opção de função de agregação none fica disponível. Se a dimensão for um valor de string, a caixa de verificação Desativar intervalo não é apresentada. No entanto, se definir as funções de agregação de uma medida como none, também desativa o intervalo.

Adicione um detalhe

Para dividir uma única série de dados em várias séries de dados com base noutra coluna, adicione uma discriminação.

Quando seleciona uma discriminação, escolha colunas que contenham um pequeno número de etiquetas curtas e significativas, como region_name, em vez de campos que possam conter um grande número de strings ou strings longas, como textPayload.

Por exemplo, veja a seguinte configuração do gráfico, 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 gráfico que contém uma discriminação por gravidade.

Na captura de ecrã anterior, vê uma série de dados agrupados, em que o tipo de recurso k8s_container está dividido em diferentes tipos severity. Isto permite-lhe identificar quantos registos de cada tipo de gravidade foram gerados por um determinado recurso.

Guarde um gráfico num painel de controlo personalizado

Depois de gerar um gráfico a partir da sua consulta, pode guardá-lo num painel de controlo personalizado. Os painéis de controlo personalizados permitem-lhe apresentar e organizar informações úteis para si através de vários tipos de widgets. Estes painéis de controlo também permitem definir variáveis, que são filtros ao nível do painel de controlo que se aplicam apenas a widgets específicos. Para aplicar uma variável a um widget, tem de modificar a consulta. Para mais informações, consulte o artigo Aplique uma variável a um widget.

Para guardar o gráfico num painel de controlo, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Log Analytics:

    Aceda ao Log Analytics

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. Execute uma consulta para gerar um gráfico e, de seguida, clique em Guardar gráfico no separador Gráfico.

  3. Na caixa de diálogo Guardar no painel de controlo, introduza um título para o gráfico e selecione o painel de controlo onde quer guardar o gráfico.

  4. Opcional: para ver o painel de controlo personalizado, no aviso, clique em Ver painel de controlo.

Para ver uma lista de painéis de controlo personalizados que contêm gráficos gerados por consultas SQL, aceda ao botão Guardar gráfico e clique em Menu.

Edite um gráfico guardado num painel de controlo personalizado

Pode modificar um gráfico depois de o guardar num painel de controlo. Para mais informações, consulte o artigo Modifique a configuração de um widget. Na caixa de diálogo Configurar widget, pode fazer o seguinte:

  • Altere os dados que consulta.
  • Edite a consulta usada para gerar um gráfico.
  • Personalize a configuração do gráfico para visualizar dados diferentes.

Limitações

  • Se o seu Google Cloud projeto estiver numa pasta que use o Assured Workloads, não é possível apresentar os gráficos que gerar num painel de controlo personalizado.

  • Os filtros ao nível do painel de controlo não se aplicam a gráficos gerados a partir de uma consulta SQL.

  • As colunas selecionadas têm de ter, pelo menos, uma linha com um valor não nulo.

  • Se guardar uma consulta e personalizar a configuração do gráfico, a configuração do gráfico personalizado não é guardada.

  • Se a sua consulta já contiver agregações, o gráfico gerado pode ser diferente devido à agregação adicional que é aplicada automaticamente pelo Log Analytics.

  • Os caminhos JSON têm de ser convertidos em strings ou números para serem representados em gráficos.

Consultas de exemplo

Esta secção fornece exemplos de consultas SQL para criar gráficos com os resultados das suas consultas. Para obter estatísticas mais úteis dos seus registos, personalize a configuração do gráfico. Para usar as consultas de exemplo, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Log Analytics:

    Aceda ao Log Analytics

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.

  2. Identifique o nome da tabela da vista de registo que quer consultar.

    Para identificar este nome, aceda à lista Vistas de registo, localize a vista de registo e, de seguida, selecione Consulta. O painel Consulta é preenchido com uma consulta predefinida que inclui o nome da tabela da visualização de registos consultada. O nome da tabela tem o formato project_ID.region.bucket_ID.view_ID.

    Para mais informações sobre como aceder à consulta predefinida, consulte o artigo Consulte uma vista de registo.

  3. Substitua VIEW pelo nome da tabela da vista de registo que quer consultar e, em seguida, copie a consulta.

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

Represente graficamente as entradas do registo por localização e gravidade

A seguinte consulta seleciona location e severity, com a localização convertida 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 exemplo de gráfico e configuração do gráfico tem o seguinte aspeto:

Exemplo de gráfico que representa as entradas de registo para a localização e a gravidade.

Na captura de ecrã 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
  • Medição: contar linhas
  • Análise detalhada: severity, com um limite de cinco

Represente graficamente os registos de auditoria de acesso aos dados do BigQuery

A consulta seguinte filtra os registos de auditoria do BigQuery data_access e seleciona determinados campos, como user_email, ip, auth_permission e job_execution_project. Por exemplo, pode criar um gráfico que visualize a frequência de utilização 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 exemplo de gráfico e configuração do gráfico tem o seguinte aspeto:

Gráfico de exemplo para registos de auditoria de acesso aos dados do BigQuery

Na captura de ecrã 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
  • Medição: contar linhas
  • Análise detalhada: auth_permission, com um limite de cinco

O que se segue?