Cortex Searchリクエストのモニター¶
Cortex Searchは、モニターとデバッグのための検索リクエストに関する詳細情報をログに記録します。リクエストログを有効にすると、Cortex Search Serviceのクエリパターン、応答時間、リクエストの詳細を確認できます。
リクエストログに収集された情報¶
Cortex Searchのリクエストログには、以下の情報が含まれます。
操作タイプ(例えばQUERY)
クエリテキストとパラメーターを含む完全なリクエスト本文
応答ステータスコード
ミリ秒単位の応答時間
データベース、スキーマ、サービス名
ユーザー、ロール、セッション情報
リクエストのログを有効にする¶
Cortex Search Serviceのリクエストログを収集するには、サービスの REQUEST_LOGGING プロパティを有効にします。
サービス作成時にリクエストログを有効にすることができます。
また、既存のサービスのリクエストログを有効にすることもできます。
リクエストのログを無効にするには、以下を行います。
運用に関する考慮事項¶
ログデータの量¶
ログされた各Cortex Searchリクエストは、 SNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTS に1つのイベント行を生成します。どれだけのデータを蓄積するかは、リクエストレートと、ログが有効である期間によって異なります。保持する予想されるログ量に合わせて保持期間とストレージを設定します。
コストの考慮事項¶
SNOWFLAKE.LOCAL テーブルに保存されたデータには、Snowflake ストレージ料金 が発生します。SQLを使用したリクエストログのクエリは他のクエリと同様にウェアハウスリソースを使用します。
クエリのレイテンシ¶
リクエストログを有効にしても、Cortex Searchクエリリクエストのレイテンシには影響しません。
Cortex Searchのリクエストログにアクセスする¶
Cortex Search ServiceのリクエストログはイベントテーブルSNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTSに格納されます。これらのログには、テーブル関数を使用するか、イベントテーブルを直接クエリすることでアクセスできます。
snowflake.local.get_ai_observability_events 関数の使用¶
Cortex Search Serviceの MONITOR 権限を持つユーザーは、 snowflake.local.get_ai_observability_events 関数を使用してそのサービスのリクエストログを表示できます。
MONITOR権限を付与する :関数を使用するロールにCortex Search ServiceのMONITOR権限を付与します。
クエリ可観測性イベント :MONITOR権限を持つロールを使用して
snowflake.local.get_ai_observability_eventsを呼び出します。
イベントテーブルをACCOUNTADMINとしてクエリする¶
ACCOUNTADMINロールを持つユーザーは、イベントテーブルを直接クエリできます。
注釈
ACCOUNTADMINロールを持つユーザーは、 snowflake.local.ai_observability_events テーブルをクエリし、アカウント内のすべてのCortex Search Serviceのリクエストイベントにアクセスできます。
アクセス制御と権限¶
Cortex Searchのリクエストログを表示するには、ユーザーは以下のいずれかを持っている必要があります。
Cortex Search ServiceのOWNERSHIPまたはMONITOR権限
ACCOUNTADMINロール(イベントテーブルへの直接アクセス用)
次の例では、ACCOUNTADMINロールを使用して、Cortex Searchリクエストログの表示に必要な権限を持つ新しいロール search_monitoring_role を作成します。
出力スキーマ¶
snowflake.local.get_ai_observability_events 関数は、以下の列を持つテーブルを返します。
列名 |
データ型 |
説明 |
|---|---|---|
TIMESTAMP |
TIMESTAMP_NTZ(9) |
イベントの時間 |
START_TIMESTAMP |
TIMESTAMP_NTZ(9) |
イベントの開始時間(NULLが可能) |
TRACE |
OBJECT |
イベントのトレース情報(NULLが可能) |
RESOURCE_ATTRIBUTES |
OBJECT |
セッションID、ユーザーID、ユーザー名、ロールID、ロール名を含め、セッション、ユーザー、およびロールの情報が含まれます |
RECORD_TYPE |
STRING |
記録のタイプ。通常はCortex Searchリクエスト用の'EVENT' |
RECORD |
OBJECT |
イベント名を含みます。通常は 'CORTEX_SEARCH_REQUEST' |
RECORD_ATTRIBUTES |
OBJECT |
データベース、スキーマ、サービス、ユーザー、ロール、セッション情報などの詳細な可観測性メタデータを含みます |
VALUE |
VARIANT |
操作タイプ、リクエスト本文、応答ステータスコード、応答時間など、実際のリクエストの詳細が含まれます |
VALUE 列には、次のキーフィールドが含まれています。
snow.ai.observability.operation_type:'QUERY'などの操作のタイプ。snow.ai.observability.request_body:クエリテキストとパラメーターを含む完全なリクエスト。snow.ai.observability.response_status_code:応答のHTTPステータスコードsnow.ai.observability.response_time_ms:ミリ秒単位の応答時間snow.ai.observability.database.name:Cortex Search Serviceを含むデータベースsnow.ai.observability.schema.name:Cortex Search Serviceを含むスキーマsnow.ai.observability.object.name:Cortex Search Serviceの名前
次は、VALUE列にあるデータの例です。
例¶
サービスの MONITOR 権限を持つロールを使用して、過去24時間のリクエストログをクエリします。