Observabilité et journalisation pour les notebooks dans les espaces de travail¶
Vue d’ensemble¶
Snowflake écrit les journaux des notebooks dans le système de fichiers local du conteneur et les ingère dans une table des événements, que vous pouvez interroger pour dépanner les exécutions des notebooks, examiner l’historique d’exécution et effectuer des analyses à long terme.
Vous pouvez utiliser une table des événements pour centraliser les données opérationnelles des notebooks dans les espaces de travail ; par exemple, avec les tâches suivantes :
Dépannage des exécutions planifiées (erreurs, avertissements, horodatages)
Audit de qui a exécuté quoi et quand (lorsqu’il est émis par la charge de travail et configuré pour la collection)
Création de tableaux de bord pour l’activité du notebook (comptes de réussite/échec, durée d’exécution, erreurs bruyantes)
Note
Il y a généralement un délai de trois à cinq minutes avant que les journaux n’apparaissent dans la table des événements.
Activer la journalisation dans le code de votre notebook¶
Par défaut, la journalisation Python est définie sur WARNING. Pour capturer les événements de l’application, vous devez définir le niveau de journalisation sur INFO ou DEBUG.
Ajoutez le code suivant à votre notebook ou script Python :
import logging
# Set the root logger to INFO level
logging.getLogger().setLevel(logging.INFO)
# Generate a test log entry
logging.info("APPLICATION_EVENT: Service initialization complete.")
Interroger les journaux de requêtes à l’aide de Snowflake Lake¶
Vous pouvez afficher les entrées du journal dans Snowsight via Snowflake Chemin.
Note
Avant de pouvoir afficher les messages du journal, vous devez activer la collecte de données de télémétrie.
Identifiez votre table des événements¶
Pour trouver la table des événements de votre compte, exécutez la commande suivante dans un fichier SQL :
SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Interroger et analyser les journaux¶
Une fois que votre table des événements a commencé à collecter des événements, vous pouvez l’interroger comme n’importe quelle autre table et le filtrer par identificateurs de plage de temps, de gravité et de charge de travail. Pour plus d’informations sur le schéma de table des événements et les définitions de colonnes, voir Colonnes de table d’événements.
Pour enquêter sur les événements récents du journal, exécutez le code suivant (en remplaçant les valeurs par défaut par vos valeurs réelles) :
SELECT TIMESTAMP, VALUE AS LOG_MESSAGE, RESOURCE_ATTRIBUTES:"snow.service.name"::string AS SERVICE_NAME, RECORD:"severity_text"::string AS SEVERITY FROM <database_name>.<schema_name>.<event_table_name> WHERE RECORD_TYPE = 'LOG' AND RESOURCE_ATTRIBUTES:"snow.service.name" = '<your_service_name>' AND TIMESTAMP > DATEADD(hour, -1, CURRENT_TIMESTAMP()) ORDER BY TIMESTAMP DESC LIMIT 100;
Voir les journaux des exécutions de notebook planifiées dans Snowsight¶
Chaque notebook planifié utilise un objet de projet de notebook qui stocke le code déployé, l’historique d’exécution et les artefacts.
Pour afficher les journaux des exécutions planifiées dans Snowsight :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Catalog » Database Explorer.
Recherchez la base de données et le schéma contenant l’objet du projet du notebook.
Sélectionnez l’objet du projet du notebook, puis sélectionnez l’onglet Run history.
Pour l’exécution que vous souhaitez inspecter, dans la colonne Logs, sélectionnez Logs.
Une fois que vous avez activé la journalisation dans le code de votre notebook, vos messages de journal personnalisés et vos journaux d’initialisation de l’infrastructure apparaissent dans cette vue de journal.
Résolution des problèmes¶
Si vous ne voyez pas d’événements attendus, vérifiez que votre table d’événements est créée et que la journalisation des événements est activée et configurée pour votre compte et vos charges de travail.
Si les exécutions planifiées échouent, vérifiez à nouveau la planification du carnet et recherchez les erreurs corrélées dans la table des événements pendant la même période.