Cortex Search 요청 모니터링¶
Cortex Search는 모니터링 및 디버깅 목적으로 검색 요청에 대한 자세한 정보를 기록합니다. 요청 로깅을 활성화하면 Cortex Search Service에 대한 쿼리 패턴, 응답 시간, 요청 세부 정보를 검토할 수 있습니다.
요청 로그에 수집된 정보¶
Cortex Search 요청 로그에는 다음 정보가 포함됩니다.
작업 유형(예: QUERY)
쿼리 텍스트 및 매개 변수를 포함한 전체 요청 본문
응답 상태 코드
응답 시간(밀리초)
데이터베이스, 스키마 및 서비스 이름
사용자, 역할 및 세션 정보
요청 로깅 활성화¶
Cortex Search Service에 대한 요청 로그를 수집하려면 서비스의 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 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 Services에 대한 요청 이벤트에 액세스할 수 있습니다.
액세스 제어 및 권한¶
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시간 동안의 요청 로그를 쿼리합니다.