GET_AI_OBSERVABILITY_EVENTS
GET_AI_OBSERVABILITY_EVENTS (SNOWFLAKE.LOCAL) (AI 옵저버빌리티 이벤트)
LOCAL 스키마의 AI_OBSERVABILITY_EVENTS 테이블에서 AI Observability 이벤트를 반환해요. 조사하는 객체와 일치하는 에이전트 유형을 전달해요:
- Cortex Agent의 경우
CORTEX_AGENT(Monitor Cortex Agent requests 참고) - TruLens와 함께 사용되는 External Agent 객체의 경우
EXTERNAL_AGENT(External Agent commands 참고) - REQUEST_LOGGING이 활성화된 Cortex Search 서비스의 경우
CORTEX_SEARCH_SERVICE(Monitor Cortex Search requests 참고)
각 행은 이벤트 테이블 열 레이아웃(RECORD, RECORD_ATTRIBUTES, VALUE, trace 필드 포함)을 사용해요. 이벤트는 대화 활동, 스팬(planning, tools, response generation), Cortex Search 요청 본문, 로그, 사용자 피드백 및 객체에 대해 쓰여진 기타 텔레메트리를 나타낼 수 있어요.
Snowsight 워크플로 및 이벤트 필터링(피드백 포함)의 예시는 Monitor Cortex Agent requests를 참고해요. AI Observability가 이벤트 테이블에 데이터를 저장하는 방법은 AI_OBSERVABILITY_EVENTS table을 참고해요.
AI_OBSERVABILITY_EVENTS에 대한 직접 SELECT는 객체 범위 지정을 우회하며 제한된 관리자용으로만 사용돼요. 루틴 모니터링에는 이 함수를 선호해요.
참조: GET_AI_OBSERVABILITY_LOGS (SNOWFLAKE.LOCAL), GET_AI_RECORD_TRACE (SNOWFLAKE.LOCAL), GET_AI_EVALUATION_DATA (SNOWFLAKE.LOCAL)
본문
구문
SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS( <database>, <schema>, <agent_name>, <agent_type> )
인자
database
객체를 포함하는 데이터베이스의 이름이에요.
schema
객체를 포함하는 스키마의 이름이에요.
agent_name
옵저버빌리티 이벤트를 검색하려는 Cortex Agent, External Agent 또는 Cortex Search 서비스의 이름이에요.
agent_type
객체 유형 문자열이에요. Cortex Agent에는 CORTEX_AGENT를, External Agent 객체에는 EXTERNAL_AGENT를, Cortex Search 서비스에는 CORTEX_SEARCH_SERVICE를 사용해요. 이 값은 대소문자를 구분하지 않아요.
반환 값
옵저버빌리티 이벤트의 테이블이에요. 열 정의는 이벤트 테이블 스키마를 따르고, 표준 SQL로 필터링 및 프로젝션해(RECORD:name, RECORD_ATTRIBUTES, 또는 RECORD 안의 severity 필드 등) 특정 이벤트 종류로 좁힐 수 있어요.
접근 제어 요구 사항
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 가져야 해요:
| CORTEX_USER | Database role | |
| USAGE | External Agent | agent_type이 EXTERNAL_AGENT일 때 agent_name으로 식별되는 External Agent에 필요함. 이 함수를 호출하려면 USAGE로 충분함. MONITOR는 적용되지 않음. |
| MONITOR | Cortex Agent | agent_type이 CORTEX_AGENT일 때 agent_name으로 식별되는 Cortex Agent에 필요함. |
| MONITOR | Cortex Search Service | agent_type이 CORTEX_SEARCH_SERVICE일 때 agent_name으로 식별되는 Cortex Search 서비스에 필요함. 서비스에 요청 로깅이 활성화되어 있어야 함. |
스키마의 객체를 운영하려면 부모 데이터베이스에 대한 권한이 적어도 하나, 부모 스키마에 대한 권한이 적어도 하나 필요해요.
지정된 권한 집합을 가진 사용자 지정 역할을 만드는 방법은 Creating custom roles을 참고해요.
보안 객체에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반 정보는 Overview of Access Control을 참고해요.
agent_type이 EXTERNAL_AGENT일 때 이 함수를 호출하려면 해당 객체에 대한 USAGE만 필요해요. ALTER EXTERNAL AGENT 또는 DROP EXTERNAL AGENT로 객체를 수정하거나 제거하려면 External Agent에 대한 OWNERSHIP이 필요해요.
일반적인 Cortex Agent 모니터링 설정(향후 에이전트용 권한 부여 포함)은 Monitor Cortex Agent requests를 참고해요. Cortex Search 요청 로그는 Monitor Cortex Search requests를 참고해요. External Agent의 옵저버빌리티 데이터 접근은 AI_OBSERVABILITY_EVENTS table을 참고해요.
예시
에이전트에 대한 옵저버빌리티 이벤트 반환:
SELECT *
FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS(
'my_database',
'my_schema',
'my_agent',
'CORTEX AGENT'
));
사용자 피드백 이벤트만 나열하려면 이벤트 이름으로 필터링해요(View feedback provided by users 참고):
SELECT *
FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS(
'my_database',
'my_schema',
'my_agent',
'CORTEX AGENT'
))
WHERE RECORD:name = 'CORTEX_AGENT_FEEDBACK';
동일한 함수가 agent_type으로 EXTERNAL AGENT를, agent_name으로 External Agent 객체 이름을 전달해 외부 계측 애플리케이션에도 작동해요(AI_OBSERVABILITY_EVENTS table 참고).
Cortex Search 서비스에 대한 요청 로그 반환(서비스에 REQUEST_LOGGING이 활성화되어 있어야 함):
SELECT *
FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_OBSERVABILITY_EVENTS(
'my_database',
'my_schema',
'my_search_service',
'CORTEX SEARCH SERVICE'
));
필터링 및 출력 필드에 대한 내용은 Monitor Cortex Search requests를 참고해요.
더 알아보기
- Table functions (AI Observability) — 테이블 함수 모음
- GET_AI_OBSERVABILITY_LOGS (SNOWFLAKE.LOCAL) — AI 로그 검색