Criar gráficos com os resultados da consulta SQL

Este documento descreve como criar gráficos com os resultados da consulta do Observability Analytics, que emite consultas SQL. A análise dos dados de registro e de rastreamento com SQL permite identificar padrões e tendências. É possível conferir os resultados da consulta como uma tabela ou criar um gráfico. Também é possível salvar um gráfico em um painel personalizado.

A captura de tela a seguir mostra os resultados da consulta de exemplo de rastreamento, que é mostrada mais adiante neste documento. A captura de tela mostra o status informado pelos períodos, depois de agregar as respostas por tempo e por service_name:

Exemplo de gráfico que ilustra uma análise detalhada por nome do serviço.

Antes de começar

  1. Faça login na sua Google Cloud conta do. 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.
  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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. 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.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Para ter as permissões que você precisa para carregar a página Observability Analytics , escrever e executar consultas nos dados de registro e de rastreamento e salvar gráficos em painéis personalizados, peça ao administrador para conceder a você os seguintes papéis do IAM:

    • Editor do Monitoring (roles/monitoring.editor) no seu projeto
    • Acessador de visualização de observabilidade (roles/observability.viewAccessor) nas visualizações de observabilidade que você quer consultar. Esse papel oferece suporte às 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 de papel, o principal poderá acessar todas as visualizações de observabilidade. As visualizações de observabilidade estão no Acesso antecipado.
    • Leitor de registros (roles/logging.viewer) no seu projeto
    • Acessador de visualização de registros (roles/logging.viewAccessor) no projeto que armazena as visualizações de registro que você quer consultar.

    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 personalizados papéis ou outros predefinidos papéis.

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 conferir 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 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 a serem representadas 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 é representada 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. 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 em um conjunto de dados se relacionam ao 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 visão geral: os medidores e as visões gerais fornecem o valor mais recente, além de uma indicação verde, âmbar ou vermelha com base em como esse valor se compara 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, 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.

      Dados de registros

      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.

      Rastrear dados

      Por exemplo, a consulta a seguir consulta os dados de rastreamento, agrega os dados em intervalos de uma hora, aplica um limite e classifica os resultados:

      SELECT TIMESTAMP_TRUNC(start_time, HOUR) AS hour,
         COALESCE(
            JSON_VALUE(resource.attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."service.name"'),
            JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name,
         status.code AS status,
         COUNT(*) AS count
      FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans`
      GROUP BY hour, service_name, status
      ORDER BY hour DESC
      LIMIT 1000
      

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

      A consulta anterior foi usada para gerar a figura mostrada no início deste documento. Essa figura também mostra a configuração do gráfico.

    • 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, defina 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 Exibição do 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 Exibição do 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.

Dados de registros

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.

Rastrear dados

Por exemplo, o gráfico a seguir mostra o número de períodos criados por cada serviço, juntamente com os dados detalhados pelo nome do período:

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

Salvar um gráfico em um painel personalizado

Depois que um gráfico é gerado na consulta, é possível salvá-lo em um painel personalizado. Os painéis personalizados permitem mostrar e organizar informações úteis usando uma variedade de tipos de widgets. Esses painéis também permitem definir variáveis, que são filtros de nível de 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 conferir 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 é 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 seu 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 de nível do painel não se aplicam a gráficos gerados a partir de 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 personalizada do gráfico 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.

A seguir