ロギング、トレース、メトリクス¶
ログメッセージをキャプチャし、コードの実行時にイベントをトレースすることで、Snowflake関数とプロシージャハンドラーコード(Snowpark APIs を使用 して記述したコードを含む)のアクティビティを記録できます。データを収集したら、 SQL を使用してクエリを実行し、結果を分析できます。
ロギング、トレース、メトリクスは、アプリケーションのデバッグと最適化を容易にするためにSnowflakeが提供する可観測性機能の1つです。Snowflakeは、 OpenTelemetry 標準に基づいた構造で可観測性データをキャプチャします。
特に、次を記録して分析できます。
- ログメッセージ は、コードの特定部分の状態に関する情報を含む、独立した詳細なメッセージです。 
- メトリクス・データ --- Snowflake が生成する CPU とメモリ・メトリクス。 
- 構造化データを使用した トレースイベント は、コードの複数の部分にまたがる情報やグループ化された情報を取得するために使用できます。 
始めましょう¶
次の高レベルのステップを使用して、ログデータとトレースデータの取得と使用を開始します。
- アクティブなイベントテーブルがあることを確認してください。次のいずれかを実行します。 - デフォルトでアクティブになっている デフォルトイベントテーブル を使用します。 
 - Snowflakeは、コードからのテレメトリーデータをイベントテーブルに収集します。 
- データが収集されるように、テレメトリーレベル を設定します。 - レベルを使えば、どのデータを(どれだけのデータを)収集するかを指定できます。レベルが正しく設定されていることを確認します。 
- ハンドラーコードからログまたはトレースデータの出力を開始します。 - イベントテーブルを作成し、アカウントに関連付けたら、ハンドラーの言語で API を使用して、ハンドラーコードからログメッセージを出力します。ログおよびトレースデータをキャプチャした後、データをクエリして結果を分析できます。 - コードのインスツルメンテーションの詳細については、次をご参照ください: 
- イベントテーブルをクエリして、収集されたログとトレースデータを分析します。 - 詳細については、次をご参照ください。 
テレメトリーレベルの設定¶
イベント・テーブルに保存されるテレメトリ・データ(ログ、トレース、メトリクス・データなど)のレベルは、データの種類ごとに設定することで管理できます。レベル設定を使用して、必要な量と種類のデータを確実にキャプチャします。
詳細については、 ロギング、メトリクス、トレースのレベル設定 をご参照ください。
ログメッセージとトレースイベントを比較する¶
次のテーブルでは、ログメッセージとトレースイベントの特徴と利点を比較しています。
| 特徴 | ログエントリ | トレースイベント | 
|---|---|---|
| 使用目的 | コードの状態に関して、詳細であっても構造化されていない情報を記録します。この情報を使用して、関数またはプロシージャの特定の呼び出し中に何が起こったかを理解します。 | コードの各呼び出しの、簡潔であっても構造化された概要を記録します。この情報を集約して、コードの動作を高レベルで理解します。 | 
| ペイロードとしての構造 | なし。ログエントリは単なる文字列です。 | トレースイベントに付加できる属性で構造化されています。属性は、 SQL クエリで簡単にクエリできるキーと値のペアです。 | 
| グループ化のサポート | なし。各ログエントリは独立したイベントです。 | あり。トレースイベントはスパンに編成されます。スパンは独自の属性を持つことができます。 | 
| 数量制限 | 無制限。コードによって出力されたすべてのログエントリは、イベントテーブルにインジェストされます。 | スパンあたりのトレースイベント数の上限は128です。スパン属性の数にも制限があります。 | 
| 記録されたデータに対するクエリの複雑性 | 比較的高い。クエリでは各ログエントリを解析して、そこから意味のある情報を抽出する必要があります。 | 比較的低い。クエリでは、トレースイベントの構造化された性質を利用できます。 |