Beobachtbarkeit und Protokollierung für Notebooks in Workspaces

Übersicht

Snowflake schreibt die Notebook-Protokolle in das lokale Dateisystem des Containers und nimmt sie in eine Ereignistabelle auf, die Sie abfragen können, um eine Fehlerbehandlung bei Notebook-Ausführungen durchzuführen, den Ausführungsverlauf zu überprüfen und Langzeitanalysen durchzuführen.

Sie können eine Ereignistabelle verwenden, um Betriebsdaten für Notebooks in Workspaces zu zentralisieren. Dazu können Sie beispielsweise die folgenden Aufgaben verwenden:

  • Problembehandlung bei geplanten Ausführungen (Fehler, Warnungen, Zeitstempel)

  • Überwachen, wer was und wann ausgeführt hat (sofern von der Workload protokolliert und für die Erfassung konfiguriert)

  • Erstellen von Dashboards für Notebook-Aktivitäten (Erfolgs-/Fehlerzahlen, Ausführungsdauer, verrauschte Fehler)

Bemerkung

Es gibt normalerweise eine Verzögerung von drei bis fünf Minuten, bevor die Protokolle in der Ereignistabelle angezeigt werden.

Aktivieren der Protokollierung in Ihrem Notebook-Code

Standardmäßig ist die Python-Protokollierung auf WARNING`eingestellt. Um Anwendungsereignisse zu erfassen, müssen Sie den Protokolliergrad auf :code:`INFO oder :code:`DEBUG`einstellen.

  • Fügen Sie den folgenden Code zu Ihrem Python-Notebook oder -Skript hinzu:

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.")
Copy

Abfragen von Protokollen mit Snowflake Trail

Sie können Protokolleinträge in Snowsight über Snowflake Trail anzeigen.

Bemerkung

Bevor Sie Protokollmeldungen sammeln können, müssen Sie die Telemetriedatenerfassung aktivieren.

Identifizieren Ihrer Ereignistabelle

  • Um die Ereignistabelle für Ihr Konto zu finden, führen Sie den folgenden Befehl in einer SQL-Datei aus.

SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Copy

Abfragen und Analysieren von Protokollen

Nachdem Ihre Ereignistabelle begonnen hat, Ereignisse zu sammeln, können Sie sie wie jede andere Tabelle abfragen, um nach Zeitbereich, Schweregrad und Workload-Bezeichnern zu filtern. Weitere Informationen zum Schema und zu Spaltendefinitionen von Ereignistabellen finden Sie unter Spalten von Ereignistabellen.

  • Um die letzten Protokollereignisse zu untersuchen, führen Sie den folgenden Code aus (ersetzen Sie die Platzhalterwerte durch Ihre tatsächlichen Werte):

    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;
    
    Copy

Anzeigen von Protokollen geplanter Notebook-Ausführungen in Snowsight

Jedes geplante Notebook verwendet ein Notebook-Projektobjekt, das den bereitgestellten Code, den Ausführungsverlauf und die Artefakte speichert.

So zeigen Sie Protokolle für geplante Ausführungen in Snowsight an:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Catalog » Database Explorer aus.

  3. Suchen Sie die Datenbank und das Schema, die das Notebook-Projektobjekt enthalten.

  4. Wählen Sie das Notebook-Projektobjekt und dann die Registerkarte Run history aus.

  5. Wählen Sie für die Ausführung, die Sie prüfen möchten, in der Logs-Spalte Logs aus.

Nachdem Sie die Protokollierung in Ihrem Notebook-Code aktiviert haben, werden Ihre kundenspezifische Protokollmeldungen und die Protokolle zur Initialisierung der Infrastruktur in dieser Protokollansicht angezeigt.

Problembehandlung

  • Wenn Sie keine erwarteten Ereignisse sehen, überprüfen Sie, ob Ihre Ereignistabelle erstellt wurde und ob die Ereignisprotokollierung für Ihr Konto und Ihre Workloads aktiviert und konfiguriert ist.

  • Wenn geplante Ausführungen fehlschlagen, prüfen Sie die Notebook-Planung erneut und suchen Sie in der Ereignistabelle im selben Zeitfenster nach korrelierten Fehlern.