アプリケーションのログおよびイベント共有の有効化¶
このトピックでは、アプリケーションのトラブルシューティングのためにログとイベント共有を有効にする方法について説明します。アプリケーションにエラーが発生した場合、ログとトレースイベントによって、パフォーマンスと診断情報を得ることができます。これらはアプリケーションプロバイダーと共有されます。
コンシューマーとしてログとイベント共有を有効にするワークフロー¶
以下を実行すると、コンシューマーしてアプリケーションのログとイベント共有を有効にできます。
ログとイベント共有を有効にするための考慮事項¶
アプリケーションのログとイベント共有を有効にする前に、以下を考慮する必要があります。
この機能には、 アカウントでイベントテーブルを設定する 必要があります。
イベント共有を有効にする と、ログとトレースイベントのマスクされ編集されたコピーが、指定されたプロバイダーアカウントのイベントテーブルに自動的に取り込まれます。
Snowflakeは、イベント共有を有効にするために課金することはありません。ただし、ログやイベントのインジェスチョン、イベントテーブルのストレージにかかる費用はお客様の負担となります。
イベントをプロバイダーと共有した後は、共有ログとトレースイベントへのアクセスを取り消すことができません。
イベント共有を使用して履歴イベントを共有することはできません。
イベントのサブセットを共有したり、フィルターを適用したりすることはできません。
Snowflakeは、共有イベントをご使用のアカウントと同じリージョン内の指定プロバイダーアカウントに送信します。この機能は、異なるリージョン間ではデータを共有しません。
レベルはプロバイダーにより設定されるため、アプリケーションのログレベルやトレースレベルを変更することはできません。
Snowflakeは、イベント共有を有効にする前に、イベントテーブルのログとイベントを確認することをお勧めします。
Snowflakeは、アプリケーションのトラブルシューティングを実行する必要がない場合には、ログとイベントの共有を無効にすることをお勧めします。
イベントテーブルの設定¶
Native Apps Frameworkには、アプリケーション内の関数やストアドプロシージャから生成されるログメッセージやトレースイベントを格納するためにイベントテーブルが必要です。
注釈
アプリケーションをインストールする前にイベントテーブルを設定し、アクティブテーブルにしないと、ログとイベントデータは破棄されます。
アカウントは複数のイベントテーブルを持つことができますが、一度にSnowflakeアカウントのアクティブなイベントテーブルとして設定できるのは1つだけです。アクティブなイベントテーブルがないと、アプリケーションによって生成されたログメッセージやトレースイベントはキャプチャされません。これは、アプリケーションの関数やプロシージャがログやトレースイベント APIs を呼び出す場合でも同じです。
次の例に示すように、 CREATE EVENT TABLE コマンドを使用してイベントテーブルを作成します。
CREATE EVENT TABLE event_db.event_schema.my_event_table;
イベントテーブルを作成した後、 ALTER ACCOUNT コマンドを使用して、イベントテーブルがアカウントのアクティブテーブルであることを指定します。
ALTER ACCOUNT SET EVENT_TABLE=event_db.event_schema.my_event_table;
イベントテーブルでのイベントの表示¶
プロバイダーもコンシューマーも、格納されているイベントを表示するためにイベントテーブルをクエリできます。イベントテーブルからログやトレースイベントをクエリするには、 SELECT コマンドを使用します。
SELECT * FROM event_db.event_schema.my_event_table;
アプリケーションのログレベルおよびトレースイベントレベルの表示¶
コンシューマーは、アプリケーションのログレベルを変更することはできません。ただし、アプリケーションのログを有効にする前に、プロバイダーと共有する情報の型を理解するためにログレベルを確認することをSnowflakeはお勧めします。
インストールされているアプリケーションのログレベルを表示するには、以下のコマンドを実行します。
DESC APPLICATION HelloSnowflake;
このコマンドは、 log_level
と trace_level
の値を含む、 HelloSnowflake
アプリケーションに関する情報を表示します。
アプリケーションのログおよびイベント共有の有効化¶
ログとイベント情報をプロバイダーと共有するには、アプリケーションのイベント共有を有効にする必要があります。
アプリケーションインスタンスのイベント共有を有効にするには、以下の前提条件を満たす必要があります。
MANAGE EVENT SHARING グローバル権限を持つロールを使用する。ACCOUNTADMIN ロールはデフォルトでこの権限を持っており、他のロールにこの権限を付与できる。
アプリケーションのイベント共有を有効にするには、 ALTER APPLICATION コマンドを実行して、 SHARE_EVENTS_WITH_PROVIDER を TRUE
に設定します。例:
ALTER APPLICATION HelloSnowflake SET SHARE_EVENTS_WITH_PROVIDER = TRUE;
アプリケーションのイベント共有ステータスを表示するには、次の例のように DESC APPLICATION コマンドを使用します。
DESC APPLICATION HelloSnowflake;
SHARE_EVENTS_WITH_PROVIDER
は、アプリケーションのイベント共有のステータスを示します。