Monitorar consultas ativas

Para identificar as causas da latência do sistema e do alto uso da CPU no AlloyDB para PostgreSQL, é possível monitorar e resolver problemas de consultas ativas e de longa duração no banco de dados.

É possível ver as consultas ativas na página Query Insights no console doGoogle Cloud , ordenadas pelo horário de início da transação. Se houver um número grande de consultas em execução, a página poderá exibir um subconjunto do total de consultas devido aos limites de memória na coleta de dados.

Antes de começar

Para começar a visualizar as consultas ativas, ative os recursos avançados do Query Insights e a análise de consultas ativas na sua instância da seguinte maneira:

  1. No Google Cloud console, acesse a página Clusters.

    Acessar Clusters

  2. Na lista de clusters e instâncias, clique em uma instância principal ou de pool de leitura.

  3. Clique em Query Insights.

  4. Clique em Edit Settings.

  5. Na janela Editar configurações do Query Insights, selecione Ativar recursos avançados do Query Insights para o AlloyDB > Análise de consultas ativas.

  6. Clique em Salvar alterações.

  7. Na janela As mudanças exigem reinicialização, clique em Confirmar e reiniciar.

Você pode usar o Gemini Cloud Assist para ajudar a monitorar e resolver problemas nos seus recursos do AlloyDB. Para mais informações, consulte Monitorar e resolver problemas com a assistência do Gemini.

Visualizar consultas ativas

Para ver as consultas ativas, faça isto:

  1. Crie um papel personalizado e adicione a permissão databaseinsights.monitoringViewer do Identity and Access Management (IAM).

  2. Adicione esse papel para cada usuário que verá as consultas ativas.

  3. No console do Google Cloud , abra a página do AlloyDB.

    Acessar o AlloyDB

  4. Clique no nome de um cluster para abrir a página Visão geral.

  5. Selecione a guia Query Insights. O painel do Query Insights mostra detalhes sobre o cluster selecionado.

  6. Clique na guia Visualização de consultas ativas. A guia contém um resumo das consultas ativas em execução, além das 50 transações em execução há mais tempo.

    É possível filtrar as informações por:

    • Bancos de dados: filtra a carga de consulta em um banco de dados específico ou em todos os bancos de dados.
    • Usuário: filtra a carga de consulta de um usuário específico do banco de dados ou de todos os usuários.
    • ID do nó: é exibido apenas para instâncias do pool de leitura. Filtra a carga de consulta em um nó de instância do pool de leitura específico ou em todos os nós.

    Visão geral do resumo de todas as consultas ativas normalizadas: fornece uma visão geral de todas as consultas ativas exibindo o total de conexões com base nos seguintes parâmetros:

    • Distribuição de conexões ativas categorizadas por estado da conexão.
    • Distribuição de conexões ativas com base em diferentes tipos de eventos de espera.
    • Distribuição de durações de transações para consultas que não estão em estado inativo.

    Transações em execução há mais tempo: fornece uma visão geral das 50 principais consultas em execução nos estados active e idle in transaction com base no tempo de execução decrescente.

É possível ver uma lista das 50 principais consultas ativas normalizadas no painel do Query Insights.

Uma consulta ativa normalizada remove dados sensíveis e retorna um resumo. Duas consultas idênticas, exceto pelos valores da cláusula WHERE, têm o mesmo resumo. Por exemplo, considere as três consultas de exemplo a seguir:

  • select * from my_table where id = 1;
  • select * from my_table where id = 2;
  • select * from my_table where id = 100;

A versão normalizada dessas consultas é o seguinte resumo:

select * from my_table where id = ?;

Uma consulta executada em sessões diferentes é exibida como entradas diferentes no painel.

Ver as principais transações em execução há mais tempo

A tabela a seguir descreve as colunas da tabela Transações em execução há mais tempo no painel do Query Insights:

Nome da coluna Descrição
ID de processo O ID de processo é o identificador exclusivo da conexão de banco de dados.
ID do nó O ID do nó é o identificador exclusivo do nó da instância do pool de leitura em que uma consulta é executada.
Consulta Texto da consulta SQL normalizada.
Status O status atual da conexão. Os valores de status incluem active e idle in transaction.
Duração da sessão A duração da sessão atual (em segundos).
Duração da transação A duração da transação atual (em segundos).
Duração da consulta A duração da consulta ativa atual (em segundos). A duração das consultas no estado idle in transaction é 0, porque elas não estão em execução ativa.
Tipo de evento de espera O tipo de evento de espera que está ocorrendo durante a execução da consulta.
Evento de espera O evento de espera que está ocorrendo durante a execução das consultas.
Banco de dados Nome do banco de dados em que essa conexão está em execução.
Nome do aplicativo Nome do aplicativo em que essa conexão está em execução.
Nome de usuário Nome do usuário do banco de dados conectado ao banco de dados.
Endereço do cliente Endereço IP específico do cliente que enviou uma consulta.
Ação Contém um link para encerrar uma transação.

A tela é atualizada automaticamente a cada 60 segundos.

O uso dos campos Banco de dados e Usuário para filtragem atualiza os dados na página.

Para analisar dados estáticos, desative a Atualização automática e use o campo Filtro da tabela Transações de execução mais longa conforme necessário.

Encerrar uma consulta ou transação

Para encerrar uma consulta ou transação, você precisa ter o papel databaseinsights.operationsAdmin. Para mais informações, consulte Referência de papéis básicos e papéis predefinidos do IAM.

Uma transação pode conter várias consultas. Para identificar quais consultas estão ativas no momento, consulte a coluna Consulta na tabela Transação em execução há mais tempo.

Para encerrar uma consulta ou transação, siga estas etapas:

  1. Selecione a consulta na tabela Transação em execução há mais tempo.
  2. Role para a direita até a coluna Ação.
  3. Clique em Encerrar conexão.
  4. Na janela Encerrar conexão, clique em Confirmar.

    A página é atualizada após iniciar o encerramento. Se o encerramento falhar, ela ficará silenciosa e a consulta continuará aparecendo na lista de consultas ativas. Se o encerramento for bem-sucedido, a consulta não será mais exibida na lista.

A seguir