앱에 대한 이벤트 정의 구성하기

이 항목에서는 앱의 매니페스트 파일에서 이벤트 정의를 정의하는 방법을 설명합니다. 이벤트 정의는 어떤 로그 메시지와 추적 이벤트가 공급자와 공유되는지 정의합니다.

이벤트 정의 정보

이벤트 정의는 앱이 로그 메시지와 추적 이벤트를 공급자와 공유하는 방법을 지정합니다. 이벤트 정의는 공급자가 설정한 로그 메시지 및 추적 이벤트 수준에 대한 필터 역할을 합니다. 공급자는 새로운 앱 버전이나 패치가 게시될 때 앱에 대한 이벤트 정의를 지정합니다.

이벤트 정의는 로그 메시지와 추적 이벤트에 적용되는 필터입니다. 이벤트 정의에 따라 이벤트 공유가 활성화될 경우 공급자 이벤트 테이블에 삽입되는 정보가 결정됩니다.

이벤트 정의는 선택 사항입니다. 공급자가 앱에 대한 이벤트 정의를 지정하지 않으면 컨슈머는 공급자가 이벤트 추적을 활성화한 경우에만 모든 이벤트에 대한 이벤트 공유를 활성화하거나 비활성화할 수 있습니다.

조심

이벤트 정의는 공급자가 설정한 로그 및 추적 수준과 다릅니다. 로그 및 추적 수준에 따라 컨슈머 이벤트 테이블에 삽입되는 정보가 결정됩니다. 로그 수준이나 추적 수준이 설정되지 않으면 앱은 아무 이벤트도 내보내지 않습니다.

앱의 로그 및 추적 수준은 컨슈머가 활성화한 이벤트 정의에 따라 변경될 수 있습니다. Snowflake는 컨슈머가 활성화한 이벤트 정의에서 허용하는 가장 자세한 로그 및 추적 수준을 사용합니다.

필수 및 선택 이벤트 정의

공급자는 이벤트 정의를 필수 사항 또는 선택 사항으로 설정할 수 있습니다.

  • 필수 이벤트 정의는 앱이 설치될 때 자동으로 활성화됩니다.

    필수 이벤트 정의가 포함된 앱을 설치한 후에는 컨슈머가 이벤트 공유나 필수 이벤트 정의를 비활성화할 수 없습니다. 앱이 업그레이드될 때 공급자는 시스템 함수 또는 Python Permission SDK 를 사용하여 컨슈머가 필요한 모든 이벤트 정의를 활성화했는지 확인할 수 있습니다.

  • 선택적 이벤트 정의는 컨슈머가 필요에 따라 활성화하거나 비활성화할 수 있습니다.

지원되는 이벤트 정의

다음 테이블에는 현재 지원되는 이벤트 정의가 나열되어 있습니다.

타입

이름

설명

필터

All

SNOWFLAKE$ALL

앱에서 내보내는 모든 로그 메시지와 추적 이벤트를 공유합니다.

*

Errors and warnings

SNOWFLAKE$ERRORS_AND_WARNINGS

오류, 경고 및 치명적인 이벤트와 관련된 로그를 공유합니다.

RECORD_TYPE = ‘LOG’ AND RECORD:severity_text in (‘FATAL’, ‘ERROR’, ‘WARN’)

Traces

SNOWFLAKE$TRACES

애플리케이션에서 사용자 활동과 여정에 대한 자세한 추적 정보를 공유합니다.

RECORD_TYPE in (‘SPAN’, ‘SPAN_EVENT’)

Usage logs

SNOWFLAKE$USAGE_LOGS

사용자 작업 및 앱 이벤트와 관련된 상위 수준 로그를 공유합니다.

RECORD_TYPE = LOG AND RECORD:severity_text = ‘INFO’

Debug logs

SNOWFLAKE$DEBUG_LOGS

앱의 문제 해결에 사용된 기술 로그를 공유합니다.

RECORD_TYPE = ‘LOG’ AND RECORD:severity_text in (‘DEBUG’, ‘TRACE’)

Metrics

SNOWFLAKE$METRICS

컨슈머가 공급자와 메트릭을 공유할 수 있도록 지원합니다.

RECORD_TYPE  in (‘METRIC’)

참고

Snowsight 는 공급자가 이벤트 정의를 사용하도록 앱을 구성하지 않은 경우 모든 이벤트 All 유형만 컨슈머에게 표시합니다.

컨테이너가 있는 앱에서 이벤트 정의의 제한 사항

Snowflake Native Apps with Snowpark Container Services 는 현재 ALL 이벤트 정의만 지원합니다. 추가 이벤트 정의에 대한 지원은 향후 릴리스에서 추가될 예정입니다.

앱의 로그 및 추적 수준 설정

앱이 이벤트 추적을 사용할 수 있도록 하려면 공급자가 매니페스트 파일에서 로그 및 추적 수준을 구성해야 합니다.

앱에 대한 로그 및 추적 수준을 설정하려면 다음 예제와 같이 manifest.yml 파일에 configuration 블록을 추가합니다.

configuration:
  ...
  log_level: INFO
  trace_level: ALWAYS
  metric_level: ALL
  ...
Copy

이 예제에서는 앱의 로그 및 추적 수준을 다음과 같이 설정합니다.

  • log_level 속성은 INFO 로 설정됩니다.

  • trace_level 속성은 ALWAYS 로 설정됩니다.

  • metric_level 속성은 ALL 로 설정됩니다.

이러한 매개 변수의 유효한 값에 대한 자세한 내용은 LOG_LEVEL, TRACE_LEVELMETRIC_LEVEL 섹션을 참조하십시오.

조심

앱을 게시한 후에는 로그 및 추적 수준을 변경할 수 없습니다. 매니페스트 파일에 로그 및 추적 수준이 설정되지 않으면 앱은 아무 정보도 내보내지 않습니다.

앱에 대한 로그 및 추적 수준이 설정되면 컨슈머는 앱에서 내보내는 로그 메시지와 추적 이벤트를 확인하기 위해 자신의 계정에서 이벤트 테이블을 설정해야 합니다.

공급자가 앱에서 생성된 로그 메시지를 확인하고 이벤트를 추적할 수 있도록 하려면 컨슈머가 이벤트 공유를 활성화해야 합니다. 자세한 내용은 앱에 이벤트 공유 활성화 섹션을 참조하십시오.

매니페스트 파일에 이벤트 정의 추가

공급자는 이벤트 정의를 지정하기 위해 다음 예제와 같이 매니페스트 파일의 configuration.telemetry_event_definitions 블록에 항목을 추가합니다.

configuration:
  telemetry_event_definitions:
    - type: ERRORS_AND_WARNINGS
      sharing: MANDATORY
    - type: DEBUG_LOGS
      sharing: OPTIONAL
Copy

이 예제에서는 다음 이벤트 정의를 지정합니다.

  • 유형이 ERRORS_AND_WARNINGS 인 필수 이벤트 정의.

  • 유형이 DEBUG_LOGS 인 선택적 이벤트 정의.

자세한 내용은 지원되는 이벤트 정의 섹션을 참조하십시오.

컨슈머가 앱을 설치하면 앱의 Security 페이지에 있는 Events and logs 탭에 이벤트 정의가 표시됩니다. 자세한 내용은 앱에 대한 로깅 및 이벤트 공유 활성화 섹션을 참조하십시오.

특정 오브젝트에 대한 로그, 추적 및 메트릭 수준 설정하기

공급자는 앱 내의 특정 오브젝트에 대한 로그, 추적 및 메트릭 수준을 파인 튜닝할 수 있습니다. 이를 통해 공급자는 앱에서 전송되는 원격 분석 데이터를 더 잘 제어할 수 있습니다.

공급자는 앱 내에서 다음 오브젝트에 대한 로그, 추적 및 메트릭 수준을 설정할 수 있습니다.

  • 스키마

  • 버전 지정 스키마

  • 저장 프로시저

  • 사용자 정의 함수

다음 표에는 이러한 오브젝트에 대한 로그, 추적 및 이벤트 수준을 설정하는 데 사용되는 SQL 명령이 나열되어 있습니다.

오브젝트

명령

스키마

ALTER SCHEMA

버전 지정 스키마

CREATE OR ALTER VERSIONED SCHEMA

저장 프로시저

ALTER PROCEDURE

사용자 정의 함수

ALTER FUNCTION

스키마, 저장 프로시저 및 사용자 정의 함수의 경우 공급자는 ALTER 명령의 SET 절을 사용하여 다음 속성을 설정할 수 있습니다.

  • LOG_LEVEL

  • TRACE_LEVEL

  • METRIC_LEVEL

버전이 지정된 스키마의 경우 공급자는 설정 스크립트에서 CREATE OR ALTER VERSIONED SCHEMA 를 사용하여 이러한 속성을 설정할 수 있습니다.

로그, 추적 및 메트릭 수준의 우선 순위

앱 내에서 앱의 구성 요소에 대해 로그, 추적 및 메트릭 수준을 다양한 방식으로 구성할 수 있습니다. Snowflake Native App Framework 에서는 방출되는 이벤트를 결정하기 위해 다음과 같은 우선 순위를 사용합니다.

  • 저장 프로시저 및 사용자 정의 함수

    특정 저장 프로시저 또는 사용자 정의 함수에 대한 재정의가 설정되어 있으면 해당 재정의가 우선 적용됩니다.

  • 스키마 및 버전 스키마

    저장 프로시저 또는 사용자 정의 함수에 대한 재정의가 설정되어 있지 않으면 스키마 및 버전이 지정된 스키마에 대한 재정의가 우선합니다.

  • 앱 수준 설정

    오브젝트 수준 재정의가 없으면 일반적으로 매니페스트 파일에 정의된 앱 수준 원격 분석 구성이 사용됩니다.