Aller au contenu principal

Examiner et corriger les problèmes avec Genie

Dans l’interface utilisateur de Lakebase, Genie analyse et corrige votre base de données. Vous décrivez un problème avec vos propres mots, et Genie lit la télémétrie system.lakebase ainsi que la configuration de votre projet pour déterminer ce qui se passe : état de Postgres en direct, plans de requêtes, événements d’attente, ainsi que l’historique du DDL et des modifications de schéma. Start from a problème que vous avez remarqué vous-même, ou d’un problème détecté par Insights, où Fix with Genie prend en charge le diagnostic. Genie vous aide également à ajuster la configuration d’un projet.

Genie fonctionne comme une conversation étape par étape. Il indique ses motivations et vous demande d’approuver chaque action, y compris les requêtes qu’il exécute lors de son investigation. Toute correction, y compris une modification de base de données, requiert votre confirmation explicite avant d’être appliquée.

Cette page présente un incident de production courant, à savoir un déploiement qui supprime une colonne encore interrogée par l’application, afin de montrer de bout en bout en quoi consiste l’aide apportée par Genie.

Prérequis​

  • Un projet Lakebase sur AWS ou Azure. Voir Obtenir une base de données Postgres.
  • Pour une investigation fondée sur la télémétrie capturée : l'aperçu de l’ observabilité Lakebase dans les tables système activé, ainsi que l'accès aux tables system.lakebase ou à un insight généré à partir de celles-ci. Sans l'un de ces éléments, Genie fonctionne à partir de l'état et de la configuration actuels du projet. Consultez la télémétrie Lakebase dans les tables système.

Le scénario​

Un changement de schéma exécute ALTER TABLE users DROP COLUMN bio dans le cadre d'un déploiement de routine. L'application lit toujours cette colonne sur sa page de profil. En l'espace de quelques minutes, les requêtes de la page de profil start à échouer avec column "bio" does not exist, et le taux d'erreur de l'application augmente.

Comment se déroule une investigation Genie​

Ce que Genie trouve et recommande dépend de vos données et du problème sous-jacent, de sorte que votre investigation diffère dans ses détails. Ouvrez Genie à partir de votre projet, qui récupère automatiquement le contexte de votre projet, de votre Branch et de votre Endpoint, puis décrivez le symptôme. Une investigation type comporte quatre étapes :

Vous décrivez le symptôme​

Posez votre question en langage clair : « Pourquoi le taux d'erreur augmente-t-il ? » Vous n'avez pas besoin de connaître la cause, la query en échec ou la table concernée.

Genie établit des corrélations et lit l'historique​

Il associe l'erreur à la query défaillante, puis vérifie l'historique DDL pour voir ce qui a changé. L'historique DDL ne capture pas chaque modification (une modification effectuée juste au moment où un compute reprend après une Monter en charge à zéro peut être manquée) ; par conséquent, lorsqu'un enregistrement est manquant, Genie le signale et revient à une comparaison entre les colonnes actuelles de la table et ce que la query attend. Dans les deux cas, il identifie bio comme étant la colonne supprimée. Il s'agit du même historique que lit Insights, de sorte que Genie peut reprendre là où un insight en arrière-plan s'est arrêté.

Genie propose une récupération, fondée sur ce qu'il a trouvé​

En règle générale, tout commence par une branch (ou point de restauration) créée juste avant la modification : un clone instantané en écriture sur copie (copy-on-write) qui partage le stockage avec la production. Son coût est donc suffisamment faible pour être déployé rapidement en cas de correction. À partir de là, la récupération se fait par le dialogue : Genie peut recopier les données manquantes dans votre table actuelle ou basculer votre application vers la branch restaurée. Certains chemins nécessitent que vous fournissiez des précisions en cours de route, telles qu’une chaîne de connexion que Genie ne peut pas détecter de lui-même.

Vous confirmez avant l'application de toute modification​

Genie ne restaure, ne modifie et n'applique jamais de correction de lui-même. Il signale les actions qu'il effectue, mais veuillez vérifier celles qui ont des conséquences (point de restauration, branch supprimée) dans l'interface utilisateur de Lakebase avant de vous y fier.

Limitations​

  • Certains éléments d'interface génériques de Genie, tels que les personnalisations, les automatisations, les espaces et l'ajout de contexte, apparaissent dans Genie mais n'ont aucun effet dans Lakebase.
  • Une conversation Genie poursuivie en dehors de l’interface utilisateur de Lakebase (par exemple, à partir d’un notebook) conserve l’historique de la conversation, mais perd les outils et le contexte de la page d’origine. Start de nouvelles investigations depuis le projet Lakebase pour obtenir les résultats les plus fiables.
  • Les Branch et les Endpoint s'affichent par leur ID interne, et non par un nom d'affichage tel que "production". Si la réponse de Genie est ambiguë quant à la Branch ou à l'Endpoint concerné, recoupez l'ID dans l'interface utilisateur de Lakebase. Pour en savoir plus, consultez les limitations de la télémétrie.

Étapes suivantes​