Esta página descreve técnicas para investigar e depurar consultas que o AlloyDB para PostgreSQL envia para uma instância do pool de leitura:
- Uma lista detalhada dos nós constituintes de um pool de leitura, incluindo os endereços IP.
- Conectar-se diretamente a um nó para fins de depuração.
- Examinar os registros do AlloyDB para determinar qual nó específico está processando uma consulta enviada para um pool de leitura.
- Consultar os registros de todas as atividades recentes de um determinado nó de pool de leitura.
- Visualização de métricas Google Cloud associadas a um nó de pool de leitura.
Usadas em conjunto, essas técnicas dão acesso de diagnóstico e depuração aos seus pools de leitura. Por exemplo, se um dos pools de leitura do cluster estiver usando uma quantidade incomum de CPU durante o processamento de uma consulta de longa duração, essas técnicas permitem determinar qual nó está processando essa consulta e, em seguida, se conectar diretamente a esse nó para examinar ou encerrar a consulta.
Listar detalhes dos nós de um pool de leitura
No uso normal do AlloyDB, não é necessário saber as identidades ou endereços dos nós que compõem os pools de leitura. No entanto, quando necessário, você pode conferir uma lista de nós de uma instância de pool de leitura. Cada nó listado inclui as seguintes informações úteis para diagnóstico e depuração subsequentes:
A string Google Cloud ID do nó, usada para executar consultas de registro sobre a atividade recente desse nó.
O endereço IP do nó na nuvem privada virtual (VPC) do cluster, que pode ser usado para se conectar diretamente ao servidor PostgreSQL do nó.
Para conferir as strings de ID internas e os endereços IP dos nós de um pool de leitura,
siga as instruções específicas de gcloud
em Conferir detalhes da
instância, mas adicione outro argumento de linha de comando --view=FULL
:
gcloud
gcloud alloydb instances describe READ_POOL_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULL
Substitua:
- READ_POOL_ID: o ID do pool de leitura.
- REGION_ID: o ID da região da instância.
- CLUSTER_ID: o ID do cluster da instância.
- PROJECT_ID: o ID do projeto da instância.
A saída inclui uma seção com o rótulo nodes
, semelhante a este:
nodes:
- id: READ_POOL_INSTANCE_ID-edd4f6ed-hcfh
ip: 10.90.80.57
state: HEALTHY
zoneId: us-central1-b
- id: READ_POOL_INSTANCE_ID-edd4f6ed-ldbm
ip: 10.90.80.56
state: HEALTHY
zoneId: us-central1-c
Os campos id
e ip
de cada entrada são especialmente relevantes para as
outras técnicas descritas nesta página:
O campo
ip
mostra o endereço IP do nó na VPC do cluster.O campo
id
contém a string Google Cloud ID completa do nó. Somente os quatro últimos caracteres dessa string aparecem nas entradas registradas de um nó.Por exemplo, para encontrar entradas de registro que envolvam o primeiro dos dois nós na saída de exemplo anterior, consulte os registros usando a string de ID
hcfh
.
Conectar-se diretamente a um nó
Depois de saber o endereço IP de um nó, você pode se conectar diretamente ao servidor PostgreSQL dele. Por exemplo, para usar psql
para se conectar a uma VM na VPC do cluster, siga as instruções em Executar o cliente
psql. Ao fazer isso, forneça o
endereço IP do nó, e não o da instância do pool de leitura:
psql -h NODE_IP_ADDRESS -U USERNAME
Encontrar a atividade do nó nos registros
O AlloyDB inclui IDs de nó em entradas de registro sobre consultas processadas por pools de leitura. De modo geral, é possível usar esses IDs descobertos de duas maneiras:
- Determine o IP do nó para se conectar a ele.
- Execute outras consultas de registro para saber mais sobre a atividade recente do nó.
Determinar qual nó está processando uma consulta conhecida
Se você souber que um determinado pool de leitura está processando uma consulta de longa duração, o Log Explorer poderá ajudar a determinar o ID do nó específico que processa essa consulta.
Essa técnica só funciona em instâncias de pool de leitura que tiverem ativado a extensão pgAudit.
Acesse o Explorador de registros:
No criador de consultas, adicione
resource.labels.instance_id="READ_POOL_ID"
ao campo do editor de consultas, substituindo READ_POOL_ID pelo nome da instância do pool de leitura.Adicione a instrução SQL que você está investigando, totalmente ou parcialmente, ao campo do editor de consultas. Por exemplo,
select id from MyTable
. Essa entrada não diferencia maiúsculas de minúsculas.Clique em Executar consulta.
Use os controles do Log Explorer para ajustar e executar novamente a consulta conforme necessário para filtrar os resultados mais relevantes.
Clique em uma entrada de registro na lista de resultados para expandir a exibição.
Clique no campo
labels
na exibição expandida da entrada.Anote o valor de
NODE_ID
emlabels
.
O resultado é o identificador de quatro caracteres do nó que processa a consulta.
Conectar-se a um nó mencionado em uma entrada de registro
Se você quiser se conectar diretamente ao servidor PostgreSQL de um nó específico com base na atividade registrada, siga estas etapas:
Anote a string de ID de quatro caracteres do nó registrado. Esse ID pode ser encontrado no campo
NODE_ID
da entrada de registro.Liste os nós do pool de leitura.
Nessa lista, encontre um nó com a string de ID que termina com os quatro caracteres que você anotou na primeira etapa. É possível que nenhum dos nós listados corresponda.
Se você encontrar um nó correspondente, use o endereço IP correspondente para se conectar ao servidor PostgreSQL desse nó.
Caso contrário, se nenhum dos nós do conjunto de leitura listados na etapa anterior tiver IDs correspondentes ao nó registrado, o conjunto de leitura desativará esse nó no tempo decorrido desde a entrada de registro original. Esse é um comportamento normal para pools de leitura do AlloyDB, conforme descrito em Uma observação sobre a natureza efêmera do nó. Nesse caso, não é possível estabelecer uma conexão direta com esse nó.
Depois de se conectar ao servidor PostgreSQL de um nó, você pode
usar técnicas padrão de monitoramento do PostgreSQL, como
pg_stat_activity
, para investigar
os processos atuais do nó e ajustá-los conforme necessário.
Conferir mais entradas de registro sobre um nó
Para conferir a atividade registrada mais recente sobre um nó com um ID específico:
Acesse o Explorador de registros:
Adicione
labels.NODE_ID=NODE_ID
ao Criador de consultas do Explorador de registros, substituindo NODE_ID pela string de ID de quatro caracteres do nó.Clique em Executar consulta para conferir toda a atividade desse nó na janela de tempo selecionada ou ajuste a consulta para filtrar ainda mais.
Repita a etapa anterior conforme necessário para refinar sua pesquisa.
Monitorar métricas do nó
É possível conferir as métricas associadas a nós individuais no painel "Insights do sistema do AlloyDB". Para mais informações sobre as métricas de nó disponíveis, consulte a Referência de métricas de insights do sistema.
Para saber quais IDs de nó estão associados a uma instância de pool de leitura específica, consulte Listar detalhes dos nós de um pool de leitura.
Para a documentação de referência completa dessas e de outras métricas do AlloyDB, consulte alloydb
em "Google Cloud metrics".
Observação sobre a natureza temporária dos nós
Embora seja possível se conectar com segurança a um nó para fins de investigação temporária ou depuração, os aplicativos que usam pools de leitura sempre precisam se conectar a esses pools no nível da instância, usando o endereço IP que o cluster mostra na lista de instâncias.
O AlloyDB trata os nós dos pools de leitura como recursos intercambiáveis e temporários. O serviço muda a lista de nós de um pool de leitura tantas vezes quanto for necessário para manter a instância do pool de leitura equilibrada e responsiva. Um aplicativo que se conecta diretamente a um nó de pool de leitura, em vez de uma instância de pool de leitura, corre o risco de se desconectar abruptamente do banco de dados sempre que o AlloyDB atualizar a lista de nós da instância.
Sempre permita que seus aplicativos se conectem aos pools de leitura no nível da instância e deixe que o AlloyDB faça o trabalho de rotear suas consultas de forma eficiente para os nós corretos.
A seguir
- Saiba mais sobre como usar o Explorador de registros.