ワークスペースにおけるノートブックの可観測性とログ

概要

Snowflakeはコンテナのローカルファイルシステムにノートブックログを書き込み、それを イベントテーブル に取り込みます。これにより、クエリしてノートブック実行のトラブルシューティングを行い、実行履歴を確認し、長期的な分析を実行できます。

イベントテーブルを使用して、ワークスペース内のノートブックの操作データを一元化できます。たとえば、次のタスクがある場合:

  • スケジュールされた実行のトラブルシューティング(エラー、警告、タイムスタンプ)

  • 誰が、何を、いつ(ワークロードによって出力され、コレクション用に構成されたとき)実行したかの監査

  • ノートブックアクティビティ(成功/失敗カウント、実行時間、ノイズエラー)用ダッシュボードの作成

注釈

ログがイベントテーブルに表示されるまでには、通常、3~5分の遅延があります。

ノートブックコードでログを有効にする

デフォルトでは、Pythonログは WARNING に設定されています。アプリケーションイベントをキャプチャするには、ログレベルを INFO または DEBUG に設定する必要があります。

  • 以下のコードを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.")
Copy

Snowflake Trailを使用したログのクエリ

Snowflake Trailを介した Snowsight でログエントリを表示できます。

注釈

ログメッセージを表示する前に、 :doc:` テレメトリデータコレクションを有効にする </developer-guide/logging-tracing/logging-tracing-enabling>` 必要があります。

イベントテーブルを特定する

  • アカウントのイベントテーブルを見つけるには、 SQL ファイルで次のコマンドを実行します。

SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Copy

ログのクエリと分析

イベントテーブルがイベントの収集を開始した後、他のテーブルと同じようにクエリを実行して、時間範囲、重大度、ワークロード識別子でフィルタリングできます。イベントテーブルのスキーマと列定義について詳しくは、 イベントテーブル列 を参照してください。

  • 最近のログイベントを調査するには、次のコードを実行します(プレースホルダーの値を実際の値に置き換えます)。

    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

Snowsight で実行されたスケジュールされたノートブックのログを表示する

スケジュールされた各ノートブックは、デプロイされたコード、実行履歴、アーティファクトを格納するノートブックのプロジェクトオブジェクトを使用します。

Snowsight でスケジュールされた実行のログを表示するには:

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Catalog » Database Explorer を選択します。

  3. ノートブックプロジェクトオブジェクトを含むデータベースとスキーマを検索します。

  4. ノートブックプロジェクトオブジェクトを選択してから Run history タブを選択します。

  5. 検査する実行の場合、 Logs 列で Logs を選択します。

ノートブックコードでログを有効にすると、カスタムログメッセージとインフラストラクチャの初期化ログがこのログビューに表示されます。

トラブルシューティング

  • 期待されるイベントが表示されない場合は、イベントテーブルが作成され、イベントログがアカウントとワークロードに対して有効で構成されていることを確認してください。

  • スケジュールされた実行に失敗した場合、 ノートブックスケジューリング をクロスチェックし、同じ時間ウィンドウ中にイベントテーブルの相関エラーを検索します。