Pular para o conteúdo principal

Investigue e corrija problemas com o Genie

Na interface do Lakebase, o Genie investiga e corrige seu banco de dados. Você descreve um problema com suas próprias palavras, e o Genie lê a telemetria system.lakebase e a configuração do seu projeto para descobrir o que está acontecendo: estado atual do Postgres, planos de query, eventos de espera, e o histórico de DDL e alterações de esquema. Comece a partir de um problema que você mesmo percebeu ou de um problema detectado por Percepções, em que Corrigir com o Genie assume o diagnóstico. O Genie também ajuda você a ajustar a configuração de um projeto.

O Genie funciona como uma conversa passo a passo. Ele mostra sua linha de raciocínio e pede que você aprove cada ação, incluindo as queries que ele executa durante a investigação. Qualquer correção, incluindo uma alteração no banco de dados, precisa da sua confirmação explícita antes de ser aplicada.

Esta página percorre um incidente de produção comum, um deploy que remove uma coluna que o aplicativo ainda consulta, para mostrar como é pedir ajuda ao Genie de ponta a ponta.

Pré-requisitos​

  • Um projeto Lakebase na AWS ou no Azure. Consulte Obter um banco de dados Postgres.
  • Para uma investigação baseada na telemetria capturada: a versão preliminar de Observabilidade do Lakebase nas Tabelas do Sistema ativada, além do acesso às tabelas de system.lakebase ou do acesso a uma percepção gerada a partir delas. Sem uma delas, o Genie funciona a partir do estado e da configuração atuais do projeto. Consulte Telemetria do Lakebase nas tabelas do sistema.

O cenário​

Uma alteração de esquema executa ALTER TABLE users DROP COLUMN bio como parte de uma implantação rotineira. O aplicativo ainda lê essa coluna em sua página de perfil. Em minutos, as solicitações da página de perfil começam a falhar com column "bio" does not exist, e a taxa de erros do aplicativo aumenta.

Como funciona uma investigação do Genie​

O que o Genie encontra e recomenda depende dos seus dados e do problema por trás deles, portanto, sua investigação difere nos detalhes. Abra o Genie a partir do seu projeto, que captura automaticamente o contexto do seu projeto, branch e endpoint, e descreva o sintoma. Uma investigação típica passa por quatro estágios:

Você descreve o sintoma​

Pergunte em linguagem simples: "Why is the error rate up?" Você não precisa saber a causa, a query com falha ou qual tabela está envolvida.

O Genie correlaciona e lê a história​

Isso vincula o erro à query com falha e, em seguida, verifica a história de DDL para ver o que mudou. A história de DDL não captura todas as alterações (uma feita logo quando um compute é retornado da escala para zero pode passar despercebida), portanto, quando um registro está ausente, o Genie avisa e recorre à comparação entre as colunas atuais da tabela e o que a query espera. De qualquer forma, ele identifica bio como a coluna removida. Esta é a mesma história que as Percepções leem, para que o Genie possa continuar de onde uma percepção em segundo plano parou.

O Genie propõe uma recuperação, com base no que encontrou​

Normalmente, isso começa com um branch pontual criado logo antes da alteração: um clone instantâneo do tipo copy-on-write que compartilha o armazenamento com a produção, portanto, é barato o suficiente para ser ativado em qualquer correção. A partir daí, a recuperação é uma conversa: o Genie pode copiar os dados ausentes de volta para a sua tabela atual ou alternar o seu aplicativo para o branch restaurado. Alguns caminhos exigem um detalhe seu durante o processo, como uma string de conexão que o Genie não consegue descobrir sozinho.

Você confirma antes que qualquer alteração seja aplicada​

O Genie nunca restaura, modifica ou aplica uma correção por conta própria. Ele relata as ações que executa, mas verifique as ações consequenciais (um ponto de restauração, um branch excluído) na interface de usuário do Lakebase antes de confiar nelas.

Limitações​

  • Alguns elementos genéricos de UI do Genie, como Customizações, Automações, Spaces e Adicionar contexto, aparecem no Genie, mas não têm efeito no Lakebase.
  • Uma conversa do Genie continuada de fora da interface do usuário do Lakebase (por exemplo, de um notebook) mantém a história da conversa, mas perde as ferramentas e o contexto da página original. Começar novas investigações de dentro do projeto Lakebase para obter os resultados mais confiáveis.
  • Branch e Endpoint aparecem pelo ID interno, e não por um nome de exibição como "production". Se a resposta do Genie for ambígua quanto a qual branch ou endpoint ela se refere, faça a referência cruzada do ID na interface do usuário do Lakebase. Para obter mais informações, consulte as limitações de telemetria.

Passos seguintes​