アプリケーション用ログおよびイベント共有を設定する¶
このトピックでは、インストールされたアプリケーションのトラブルシューティングのためにログとイベント共有を設定する方法について説明します。
このトピックでは、プロバイダーとしてのログおよびイベント共有の設定に関する情報を提供します。この機能を構成するためのコンシューマーの要件については、 アプリケーションのログおよびイベント共有の有効化 をご参照ください。
ログとトレースイベントは、エラーをトラブルシューティングするための、アプリケーションに関する情報を収集することができます。ログとトレースイベントを使用すると、アプリケーションがどのように動作しているかをよりよく把握し、後でアプリケーションを改善することもできます。
プロバイダーとしてログおよびイベント共有を設定するワークフロー¶
プロバイダーとして、アプリケーションのログとイベント共有を設定するには、以下を実行します。
共有イベントを保存するアカウントを構成 します。
コンシューマーがアプリケーションをインストールし、ログとイベントの共有を有効にすると、インストールされたアプリケーションによって共有されるログとイベント情報を表示できます。
ログとトレースレベルを表示 します。
イベントテーブルでログとイベントを表示 します。
ログおよびイベント共有の使用に関する考慮事項¶
アプリケーションにログとイベント共有を使用する前に、以下を考慮する必要があります。
データインジェスチョンやストレージなど、プロバイダー側でのイベント共有に関連するコストはすべてお客様の負担となります。
イベント共有をサポートする各リージョンで、 共有イベントを保存するためのアカウント を持っている必要があります。
マニフェストファイルで、アプリケーションのデフォルトのログレベルとトレースレベルを定義する必要があります。
関数およびプロシージャでログおよびトレースイベントを構成する¶
Native Apps Frameworkには、アプリケーション内の関数やストアドプロシージャから生成されるログメッセージやトレースイベントを格納するためにイベントテーブルが必要です。
注釈
アプリケーションのコンシューマーが、アプリケーションをインストールする前にイベントテーブルを設定してアクティブテーブルにしない場合は、イベントとログのデータが破棄されます。
アカウントは複数のイベントテーブルを持つことができますが、一度にSnowflakeアカウントのアクティブなイベントテーブルとして設定できるのは1つだけです。アクティブなイベントテーブルがないと、アプリケーションによって生成されたログメッセージやトレースイベントはキャプチャされません。これは、アプリケーションの関数やプロシージャがログやトレースイベント APIs を呼び出す場合でも同じです。
イベントテーブルを作成するには、 CREATE EVENT TABLE コマンドを使用します。詳細については、 イベントテーブルの設定 をご参照ください。
コードがログメッセージとトレースイベントを記録した後に、記録されたデータをクエリできます。
ログとトレースデータの記録とクエリに関する情報については、以下をご参照ください。
マニフェストファイルでログレベルとトレースレベルを設定する¶
アプリケーションのバージョンに対してデフォルトのログおよびトレースイベントレベルを設定するには、次の例に示すように、マニフェストファイルで log_level
および trace_level
パラメーターを設定します。
artifacts:
setup_script: setup.sql
configuration:
trace_level: OFF
log_level: DEBUG
プロバイダーがトレースを有効にすると、 Snowflake Native App はすべてのクエリとストアドプロシージャ呼び出しの開始時刻と終了時刻を自動的にキャプチャします。
注釈
trace_level
プロパティが OFF
以外の値に設定された Snowflake Native App を公開すると、イベントテーブルを表示できるコンシューマーアカウントのすべてのユーザーに、非表示のストアドプロシージャへの呼び出しが公開される可能性があります。
trace_level
および log_level
でサポートされる値については、 トレースレベルの設定 および ログレベルの設定 をご参照ください。
Snowflake Native App が最初にインストールされると、マニフェストファイルで定義されたログレベルが使用されます。その後のアップグレードでログレベルが変更された場合、新しいログレベルはアップグレード処理の完了後に有効になります。
ログレベルおよびトレースレベルは、マニフェストファイル内でのみ設定できます。コンシューマーは、 ALTER APPLICATION または ALTER DATABASE コマンドを使用してログレベルを変更することはできません。
同様に、ログレベルに対するセッションレベル設定は、アプリケーションによって無視されます。
アプリケーションパッケージで定義されたログレベルおよびトレースイベントレベルを表示する¶
インストールされているアプリケーションのログレベルを表示するには、次のコマンドに示すように DESCRIBE APPLICATION コマンドを使用します。
DESC APPLICATION HelloSnowflake;
次の例に示すように、アプリケーションパッケージで定義されたアプリケーションバージョンのログレベルを表示するには、 SHOW VERSIONS コマンドを使用します。
SHOW VERSIONS
IN APPLICATION PACKAGE HelloSnowflake;
イベントテーブルでログおよびイベントを表示する¶
イベントテーブルに格納されたログとイベントを表示するには、次の例に示すように、 SELECT コマンドを使用します。
SELECT * FROM EVENT_DB.EVENT_SCHEMA.MY_EVENT_TABLE