작업 공간의 Notebooks에 대한 가시성 및 로깅¶
개요¶
Snowflake는 노트북 로그를 컨테이너의 로컬 파일 시스템에 작성하여 :doc:`이벤트 테이블 </developer-guide/logging-tracing/event-table-setting-up>`로 수집합니다. 이를 통해 노트북 실행 문제를 해결하고, 실행 기록을 검토하며, 장기 분석을 수행하기 위해 쿼리할 수 있습니다.
이벤트 테이블을 사용하여 작업 공간의 Notebooks에 대한 작업 데이터를 중앙 집중화할 수 있습니다. 예를 들면 다음과 같은 작업이 있습니다.
예약된 실행 문제 해결(오류, 경고, 타임스탬프)
누가 무엇을 언제 실행했는지 감사(워크로드에서 내보내고 수집을 위해 구성된 경우)
노트북 활동에 대한 대시보드 생성(성공/실패 횟수, 실행 기간, 노이즈가 많은 오류)
참고
일반적으로 이벤트 테이블에 로그가 표시되기까지 3~5분의 지연이 있습니다.
노트북 코드에서 로깅 활성화¶
기본적으로, Python 로깅은 WARNING`으로 설정됩니다. 애플리케이션 이벤트를 캡처하려면 로깅 수준을 :code:`INFO 또는 :code:`DEBUG`로 설정해야 합니다.
Python 노트북 또는 스크립트에 다음 코드를 추가합니다.
import logging
# Set the root logger to INFO level
logging.getLogger().setLevel(logging.INFO)
# Generate a test log entry
logging.info("APPLICATION_EVENT: Service initialization complete.")
Snowflake Trail을 사용하여 로그 쿼리¶
Snowflake Trail을 통해 Snowsight 에서 로그 항목을 확인할 수 있습니다.
참고
로그 메시지를 확인하기 전에 :doc:`원격 분석 데이터 수집을 활성화 </developer-guide/logging-tracing/logging-tracing-enabling>`해야 합니다.
이벤트 테이블 식별¶
계정에 대한 이벤트 테이블을 찾으려면 SQL 파일에서 다음 명령을 실행합니다.
SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
로그 쿼리 및 분석¶
이벤트 테이블이 이벤트 수집을 시작한 후에는 다른 테이블과 마찬가지로 이벤트 테이블을 쿼리하여 시간 범위, 심각도, 워크로드 식별자를 기준으로 필터링할 수 있습니다. 이벤트 테이블 스키마 및 열 정의에 대한 자세한 내용은 이벤트 테이블 열 섹션을 참조하세요.
최근 로그 이벤트를 조사하려면 다음 코드를 실행합니다(자리 표시자 값을 실제 값으로 대체).
SELECT TIMESTAMP, VALUE AS LOG_MESSAGE, RESOURCE_ATTRIBUTES:"snow.service.name"::string AS SERVICE_NAME, RECORD:"severity_text"::string AS SEVERITY FROM <database_name>.<schema_name>.<event_table_name> WHERE RECORD_TYPE = 'LOG' AND RESOURCE_ATTRIBUTES:"snow.service.name" = '<your_service_name>' AND TIMESTAMP > DATEADD(hour, -1, CURRENT_TIMESTAMP()) ORDER BY TIMESTAMP DESC LIMIT 100;
Snowsight 에서 예약된 노트북 실행에 대한 로그 확인¶
예약된 각 노트북은 배포된 코드, 실행 기록, 아티팩트를 저장하는 노트북 프로젝트 오브젝트를 사용합니다.
Snowsight 에서 예약된 실행에 대한 로그를 확인하려면 다음을 수행합니다.
Snowsight 에 로그인합니다.
탐색 메뉴에서 Catalog » Database Explorer 를 선택합니다.
노트북 프로젝트 오브젝트가 포함된 데이터베이스 및 스키마를 검색합니다.
노트북 프로젝트 오브젝트를 선택한 다음 Run history 탭을 선택합니다.
검사하려는 실행의 경우 Logs 열에서 :ui:`Logs`를 선택합니다.
노트북 코드에서 로깅을 활성화하면 사용자 지정 로그 메시지와 인프라 초기화 로그가 이 로그 뷰에 표시됩니다.
문제 해결하기¶
예상되는 이벤트가 표시되지 않으면 이벤트 테이블이 생성되었고 계정 및 워크로드에 대해 이벤트 로깅이 활성화 및 구성되었는지 확인합니다.
예약된 실행이 실패하면 :doc:`노트북 예약 </user-guide/ui-snowsight/notebooks-in-workspaces/notebooks-in-workspaces-schedule>`을 교차 확인하고 동일한 기간 동안 이벤트 테이블에서 상관 관계 오류를 찾습니다.