ログおよびトレースの概要

ログメッセージをキャプチャし、コードの実行時にイベントをトレースすることで、Snowflake関数とプロシージャハンドラーコード(Snowpark APIs を使用 して記述したコードを含む)のアクティビティを記録できます。データを収集したら、 SQL を使用してクエリを実行し、結果を分析できます。

特に、次を記録して分析できます。

  • ログメッセージ は、コードの特定部分の状態に関する情報を含む、独立した詳細なメッセージです。

  • 構造化データを使用した トレースイベント は、コードの複数の部分にまたがる情報やグループ化された情報を取得するために使用できます。

始めましょう

次の高レベルのステップを使用して、ログデータとトレースデータの取得と使用を開始します。

  1. イベントテーブルを作成します

    Snowflakeでは、ログとトレースデータをイベントテーブルに格納します。イベントテーブルは、事前定義された列のセットを持つ特別な種類のテーブルです。

  2. ハンドラーコードからログまたはトレースデータの出力を開始します。

    イベントテーブルを作成し、アカウントに関連付けたら、ハンドラーの言語で API を使用して、ハンドラーコードからログメッセージを出力します。ログおよびトレースデータをキャプチャした後、データをクエリして結果を分析できます。

    詳細については、次をご参照ください。

  3. イベントテーブルをクエリして、収集されたログとトレースデータを分析します。

    詳細については、以下をご参照ください。

ログメッセージとトレースイベントを比較する

次のテーブルでは、ログメッセージとトレースイベントの特徴と利点を比較しています。

特徴

ログエントリ

トレースイベント

使用目的

コードの状態に関して、詳細であっても構造化されていない情報を記録します。この情報を使用して、関数またはプロシージャの特定の呼び出し中に何が起こったかを理解します。

コードの各呼び出しの、簡潔であっても構造化された概要を記録します。この情報を集約して、コードの動作を高レベルで理解します。

ペイロードとしての構造

なし。ログエントリは単なる文字列です。

トレースイベントに付加できる属性で構造化されています。属性は、 SQL クエリで簡単にクエリできるキーと値のペアです。

グループ化のサポート

なし。各ログエントリは独立したイベントです。

あり。トレースイベントはスパンに編成されます。スパンは独自の属性を持つことができます。

数量制限

無制限。コードによって出力されたすべてのログエントリは、イベントテーブルにインジェストされます。

スパンあたりのトレースイベント数の上限は128です。スパン属性の数にも制限があります。

記録されたデータに対するクエリの複雑性

比較的高い。クエリでは各ログエントリを解析して、そこから意味のある情報を抽出する必要があります。

比較的低い。クエリでは、トレースイベントの構造化された性質を利用できます。