监控 Cortex Search 请求¶
Cortex Search 会记录有关搜索请求的详细信息,用于监控和调试目的。启用请求日志记录后,您可以查看 Cortex Search 服务的查询模式、响应时间和请求详情。
请求日志中收集的信息¶
Cortex Search 请求日志包含以下信息:
操作类型(例如,QUERY)
完整的请求正文,包括查询文本和参数
响应状态代码
响应时间(以毫秒为单位)
数据库、架构和服务名称
用户、角色和会话信息
启用请求日志记录¶
要收集 Cortex Search 服务的请求日志,请在服务上启用 REQUEST_LOGGING 属性。
您可以在创建服务时启用请求日志记录:
您还可以在现有服务上启用请求日志记录:
要禁用请求日志记录,请执行以下步骤:
操作注意事项¶
日志数据量¶
每个记录的 Cortex Search 请求都会在 SNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTS 中生成一行事件记录。积累的数据量取决于您的请求频率以及日志记录功能保持启用的时间长短。请根据您计划保留的日志量设置保留和存储策略。
成本注意事项¶
存储在 SNOWFLAKE.LOCAL 表中的数据会产生 Snowflake 存储费用。使用 SQL 查询请求日志时,会像其他查询一样消耗仓库资源。
查询延迟¶
启用请求日志记录不会影响 Cortex Search 查询请求的延迟。
访问 Cortex Search 请求日志¶
Cortex Search Service 的请求日志存储在事件表 SNOWFLAKE.LOCAL.AI_OBSERVABILITY_EVENTS 中。您可以通过表函数或直接查询事件表来访问这些日志。
使用 snowflake.local.get_ai_observability_events 函数¶
在 Cortex Search 服务上拥有 MONITOR 权限的用户可以使用 snowflake.local.get_ai_observability_events 函数查看该服务的请求日志。
授予 MONITOR 权限:向将使用该函数的角色授予 Cortex Search 服务上的 MONITOR 权限:
查询可观察性事件:使用具有 MONITOR 权限的角色调用
snowflake.local.get_ai_observability_events:
以 ACCOUNTADMIN 身份查询事件表¶
具有 ACCOUNTADMIN 角色的用户可以直接查询事件表:
备注
具有 ACCOUNTADMIN 用户的角色可以查询 snowflake.local.ai_observability_events 表并访问账户中所有 Cortex Search 服务的请求事件。
访问控制与权限¶
要查看 Cortex Search 请求日志,用户必须具备以下条件之一:
对 Cortex Search 服务的 OWNERSHIP 或 MONITOR 权限
ACCOUNTADMIN 角色(用于直接事件表访问)
以下示例展示了如何使用 ACCOUNTADMIN 角色创建一个新角色 search_monitoring_role,并授予其查看 Cortex Search 请求日志所需的权限。
输出架构¶
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 服务的数据库snow.ai.observability.schema.name:选择使用 时默认使用的角色和仓库。包含 Cortex Search 服务的架构snow.ai.observability.object.name:选择使用 时默认使用的角色和仓库。Cortex Search 服务的名称
以下是 VALUE 列中数据的示例:
示例¶
使用对服务具有 MONITOR 权限的角色,查询过去 24 小时内的请求日志。