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