함수와 프로시저의 추적 이벤트

Snowpark API를 사용하여 작성한 것을 포함하여 프로시저, UDF 또는 UDTF의 처리기 코드에서 추적 이벤트를 내보낼 수 있습니다. 지원되는 처리기 언어 목록은 지원되는 언어 섹션을 참조하십시오.

추적 이벤트는 시스템 또는 애플리케이션에서 어떤 일이 발생했을 때 캡처할 수 있는 원격 분석 데이터의 한 유형입니다(예: 로그 메시지). 로그 메시지와 달리, 추적 이벤트에는 구조화된 페이로드가 있어 데이터 분석에 적합합니다. 예를 들어 추적 이벤트를 사용하여 함수 실행 중에 계산된 일부 숫자를 캡처하고 나중에 이러한 숫자를 분석할 수 있습니다.

프로시저 또는 UDF에서 추적 이벤트의 일부로 캡처해야 하는 특성(키-값 페어)을 연결할 수 있습니다. 예를 들어 추적 이벤트에서 매개 변수의 이름과 값을 캡처하려는 경우 parameters 라는 추적 이벤트를 추가하고 매개 변수의 이름과 값을 이벤트의 특성으로 설정할 수 있습니다.

프로시저 또는 함수가 성공적으로 실행되면 Snowflake가 추가된 추적 이벤트를 내보냅니다. Snowflake는 계정과 연결된 활성 이벤트 테이블에서 이러한 추적 이벤트를 사용할 수 있도록 합니다. 이벤트 테이블에 대한 설명은 이벤트 테이블 설정하기 섹션을 참조하십시오.

이벤트 테이블에서 SELECT 명령을 실행하여 추적 이벤트 데이터에 액세스할 수 있습니다. 자세한 내용은 추적 데이터에 액세스하기 섹션을 참조하십시오.

추적 예제

다음 예제의 Python 코드는 값이 begin 인 범위에 대해 example.proc.do_tracing 특성을 설정합니다. 또한 범위 내에서 example.key1example.key2 특성이 있는 event_with_attributes 이벤트를 내보냅니다.

CREATE OR REPLACE PROCEDURE do_tracing()
RETURNS VARIANT
LANGUAGE PYTHON
PACKAGES=('snowflake-snowpark-python', 'snowflake-telemetry-python')
RUNTIME_VERSION=3.8
HANDLER='run'
AS $$
from snowflake import telemetry
def run(session):
  telemetry.set_span_attribute("example.proc.do_tracing", "begin")
  telemetry.add_event("event_with_attributes", {"example.key1": "value1", "example.key2": "value2"})
  return "SUCCESS"
$$;
Copy

시작하기

처리기 코드에서 이벤트 추적을 시작하려면 대략적으로 다음 단계를 따르십시오.

  1. 이벤트 테이블을 설정합니다.

    Snowflake는 이벤트 테이블을 사용하여 처리기 코드에서 내보낸 이벤트 데이터를 저장합니다. 이벤트 테이블에는 Snowflake에서 미리 정의한 열이 있습니다.

  2. 사용할 처리기 언어에 대한 이벤트 추적 API를 익히십시오.

    처리기 언어 목록은 지원되는 언어 섹션을 참조하고, 해당 언어에서 추적 이벤트를 내보내는 방법에 대한 콘텐츠 를 확인하십시오.

  3. 처리기에 이벤트 추적 코드를 추가합니다.

  4. 이벤트 테이블에서 이벤트 추적 데이터 검색 방법을 알아보십시오.

추적 이벤트의 수준

추적 수준을 설정하여 이벤트 테이블에 저장되는 추적 이벤트 데이터의 세부 정보 표시를 관리할 수 있습니다. 추적하기 전에 이 설정을 사용하여 로그 메시지 심각도를 캡처하고 있는지 확인하십시오. 이벤트 데이터가 테이블에 기록되지 않는 것을 발견한 경우 추적 수준을 확인하여 원하는 데이터를 허용하도록 하십시오.

자세한 내용은 추적 수준 설정하기 섹션을 참조하십시오.

지원되는 언어

처리기 코드가 Snowpark API 로 작성된 경우를 포함하여, 다음 언어로 작성된 함수 및 프로시저 처리기 코드의 이벤트를 추적할 수 있습니다.

언어/유형

Java

Python

JavaScript

Scala

Snowflake Scripting

저장 프로시저

스칼라 UDF

UDTFs

✔ *

*

Snowpark로 작성된 Scala UDTF 처리기.

처리기 코드에서 이벤트 추적

이벤트를 추적하려면 사용 중인 처리기 코드용으로 설계된 Snowflake 제공 라이브러리를 사용할 수 있습니다. Snowflake는 추적 이벤트를 가로채서 사용자가 만든 이벤트 테이블에 저장합니다.

다음 표에는 로깅에 지원되는 처리기 언어와 코드에서 로깅하기에 관한 콘텐츠로 연결되는 링크가 함께 나와 있습니다.

언어

원격 분석 라이브러리

설명서

Java

Snowflake Telemetry 클래스.

Java에서 추적 이벤트 내보내기

JavaScript

Snowflake JavaScriptAPI.

JavaScript에서 추적 이벤트 내보내기

Python

Snowflake telemetry 패키지.

Python에서 추적 이벤트 내보내기

Scala

Snowflake Telemetry 클래스.

Scala에서 추적 이벤트 내보내기

Snowflake Scripting

Snowflake SQL 함수.

Snowflake Scripting에서 추적 이벤트 내보내기

추적 이벤트를 추가하는 일반 지침

추적 이벤트를 추가하고 범위 특성을 설정하기 위해 추적 이벤트 API를 호출할 때 다음 사항에 유의하십시오.

  • 한 범위는 최대 128개의 추적 이벤트와 최대 128개의 범위 특성을 보유할 수 있습니다.

  • 앞서 추가한 이벤트와 이름이 같은 추적 이벤트를 추가하면 새 이벤트 레코드가 생성됩니다.

  • 앞서 설정한 범위 특성과 동일한 키를 가진 범위 특성을 설정하면 해당 키의 값을 덮어씁니다.

이벤트 데이터 액세스

이벤트 테이블에서 SELECT 명령을 실행하여 이벤트 데이터에 액세스할 수 있습니다. 자세한 내용은 추적 데이터에 액세스하기 섹션을 참조하십시오.