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:
- Conferir 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.
- Analisar os registros do AlloyDB para determinar qual nó específico está processando uma consulta enviada a um pool de leitura.
- Consultar os registros de todas as atividades recentes de um determinado nó do pool de leitura.
- Conferir as métricas associadas a um nó do pool de leitura. Google Cloud
Usadas em conjunto, essas técnicas oferecem acesso de diagnóstico e depuração aos pools de leitura. Por exemplo, se um dos pools de leitura do cluster estiver usando uma quantidade incomum de CPU ao processar uma consulta de longa duração, essas técnicas permitirão determinar qual nó está processando essa consulta e, em seguida, conectar-se 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 os endereços dos nós que compõem os pools de leitura. No entanto, quando necessário, é possível conferir uma lista dos nós de uma instância do pool de leitura. Cada nó listado inclui as seguintes informações úteis para diagnóstico e depuração subsequentes:
A string de ID do nó, usada para realizar consultas de registro sobre a atividade recente desse nó. Google Cloud
O endereço IP do nó na nuvem privada virtual (VPC) do cluster, que pode ser usado para se conectar diretamente ao servidor PostgreSQL desse nó.
Para conferir as strings de ID interno e os endereços IP dos nós de um pool de leitura,
siga as instruções específicas do gcloud-specific em Conferir detalhes da instância, mas adicione um argumento de linha de comando --view=FULL
adicional:
gcloud
gcloud alloydb instances describe READ_POOL_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--view=FULLSubstitua:
- 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 rotulada como nodes, semelhante a esta:
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-cOs campos id e ip de cada entrada são especialmente relevantes para as outras técnicas descritas nesta página:
O campo
ipmostra o endereço IP do nó na VPC do cluster.O campo
idcontém a string de ID completo do nó Google Cloud . Apenas os quatro caracteres finais 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 amostra 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ó, é possível 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ó em vez do endereço da instância do pool de leitura:
psql -h NODE_IP_ADDRESS -U USERNAMEEncontrar a atividade do nó nos registros
O AlloyDB inclui IDs de nós 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 desse nó para que você possa se conectar a ele.
- Realize mais consultas de registro para saber mais sobre a atividade recente do nó.
Determinar qual nó está processando uma consulta conhecida
Se você sabe que um determinado pool de leitura está processando uma consulta de longa duração, o Explorador de registros pode ajudar a determinar o ID do nó específico que está processando essa consulta.
Essa técnica funciona apenas em instâncias do pool de leitura que ativaram a extensão pgAudit.
Acesse a Análise 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, no todo ou em parte, 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 Explorador de registros para ajustar e executar a consulta novamente conforme necessário para filtrar os resultados até os mais relevantes.
Clique em uma entrada de registro na lista de resultados para expandir a exibição.
Clique no campo
labelsna exibição expandida da entrada.Anote o valor de
NODE_IDemlabels.
O resultado é o identificador de quatro caracteres do nó que está processando 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. É possível encontrar esse ID no campo
NODE_IDda 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 anotados 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 pool de leitura listados na etapa anterior tiver IDs correspondentes ao nó registrado, o pool de leitura terá desativado esse nó no tempo decorrido desde a entrada de registro original. Esse é o comportamento normal dos pools de leitura do AlloyDB, conforme descrito em Uma observação sobre a efemeridade 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ó, é possível
usar técnicas de monitoramento padrão do PostgreSQL, como
pg_stat_activity, para investigar ainda mais 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 a Análise de registros:
Adicione
labels.NODE_ID=NODE_IDao Análise 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 filtrá-la ainda mais.
Repita a etapa anterior conforme necessário para refinar a pesquisa.
Monitorar métricas de nós
É possível conferir as métricas associadas a nós individuais no painel de insights do sistema do AlloyDB. Para mais informações sobre as métricas de nós disponíveis, consulte a referência de métricas de insights do sistema.
Para saber quais IDs de nós estão associados a uma determinada instância do pool de leitura, consulte Listar detalhes dos nós de um pool de leitura.
Para conferir a documentação de referência completa dessas e de outras métricas do AlloyDB, consulte alloydb em
"Google Cloud métricas".
Uma observação sobre a efemeridade do nó
Embora seja possível se conectar a um nó com segurança para fins de investigação ou depuração temporária, 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 efêmeros e intercambiáveis. O serviço muda a lista de nós de um pool de leitura com a frequência necessária para manter o balanceamento de carga e a capacidade de resposta da instância do pool de leitura. Um aplicativo que se conecta diretamente a um nó do pool de leitura, em vez de uma instância do 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 com eficiência para os nós adequados.
A seguir
- Saiba mais sobre como usar a Análise de registros.