로깅, 메트릭 및 추적을 위한 수준 설정하기

이벤트 테이블에서 캡처된 로그, 추적 또는 메트릭 데이터에 대한 임계값 수준을 설정할 수 있습니다.

각 유형의 원격 분석 데이터에 대해 다음을 수행할 수 있습니다.

  • 각 유형의 원격 분석 데이터에 맞는 수준을 설정합니다.

  • 재정의되지 않는 한 적용되는 각 시스템 전체 수준을 설정합니다.

  • 세션 또는 특정 오브젝트(예: 프로시저 및 UDFs)에 대한 수준을 설정하여 시스템 전체 수준을 재정의할 수 있습니다.

    수준은 세션 매개 변수오브젝트 매개 변수 모두로 표현됩니다.

로깅, 메트릭 및 추적 수준 이해하기

각 유형의 원격 분석 데이터는 해당 목적에 맞는 고유한 수준 집합을 지원합니다. 이러한 수준은 각각에 대해 Snowflake가 제공하는 매개 변수 를 사용하여 설정할 수 있습니다. 수준 매개 변수를 단순화한 방식으로 나타내는 Snowsight 를 사용하여 일부 수준을 설정할 수도 있습니다.

다음과 같은 방법으로 각각을 설정할 수 있습니다.

로깅:

수준을 설정하면 해당 수준 이상의 심각한 수준의 데이터만 이벤트 테이블에 캡처되어 Snowsight 에 표시됩니다. 예를 들어 LOG_LEVEL 매개 변수를 WARN으로 설정하면 WARN, ERROR 및 FATAL 수준의 메시지가 이벤트 테이블에 캡처됩니다.

수준은 LOG_LEVEL 매개 변수에 의해 결정됩니다.

메트릭:

현재는 모든 메트릭 데이터를 캡처하거나 아무것도 캡처하지 않을 수 있습니다.

수준은 METRIC_LEVEL 매개 변수에 의해 결정됩니다.

추적:

이벤트 테이블에 저장되는 추적 이벤트 데이터의 범위를 지정할 수 있습니다.

수준은 TRACE_LEVEL 매개 변수에 의해 결정됩니다.

계정 수준 설정하기

각 유형의 원격 분석 데이터에 대해 계정 수준을 설정할 수 있습니다. Snowflake가 효과 수준을 결정하는 방식 이해하기 에 설명된 대로 오브젝트 및 세션 수준에서 이 수준을 재정의할 수 있습니다.

필요한 권한이 있는지 확인

계정 수준을 설정하려면 아래 설명된 권한이 부여되거나 상속되는 역할을 사용해야 합니다.

권한에 대한 자세한 내용은 액세스 제어 권한 섹션을 참조하십시오.

수정할 수준

설정할 매개 변수

필요한 권한

로그 수준

LOG_LEVEL

계정에 대한 MODIFY LOG LEVEL 권한

메트릭 수준

METRIC_LEVEL

계정에 대한 MODIFY METRIC LEVEL 권한

추적 수준

TRACE_LEVEL

계정에 대한 MODIFY TRACE LEVEL 권한

다음 예제의 코드는 central_log_admin 역할을 사용하는 사용자에게 계정의 로그 수준을 설정하는 데 필요한 권한을 부여합니다.

GRANT MODIFY LOG LEVEL ON ACCOUNT TO ROLE central_log_admin;
Copy

Snowsight 에서 계정 수준 설정하기

참고

로깅 및 추적에 대한 Snowsight 지원은 모든 계정에서 미리 보기 기능으로 제공됩니다.

Snowsight 를 사용하여 계정 수준에서 원격 분석 수준을 설정할 수 있습니다.

  1. 수준을 설정하는 데 필요한 권한이 있는 역할 에 액세스할 수 있는지 확인합니다.

  2. Snowsight 에 로그인합니다.

  3. 탐색 메뉴에서 Monitoring » Traces and Logs 를 선택합니다.

  4. Traces & Logs 페이지에서 Set Event Level 을 선택합니다.

  5. Set logging & tracing for 에서 Account 을 선택합니다.

  6. 조정할 원격 분석 데이터 수준을 선택합니다.

    All Events

    모든 종류의 원격 분석 데이터 수집을 켜려면 On, 모든 종류의 데이터 수집을 켜려면 Off.

    Traces

    추적 데이터 수집을 ALWAYS 로 설정하려면 On, 추적 데이터 수집을 OFF 로 설정하려면 Off. 수준에 대한 내용은 TRACE_LEVEL 섹션을 참조하십시오.

    Logs

    로그 데이터 수집을 INFO 로 설정하려면 On. 수준에 대한 내용은 LOG_LEVEL 섹션을 참조하십시오.

    Metrics

    추적 데이터 수집을 ALL 로 설정하려면 On, 추적 데이터 수집을 NONE 으로 설정하려면 Off. 수준에 대한 내용은 METRIC_LEVEL 섹션을 참조하십시오.

SQL을 사용하여 계정에 수준 설정하기

SQL을 사용하여 계정에 대한 원격 분석 수준을 설정할 수 있습니다.

계정의 원격 분석 수준을 설정하려면 다음을 수행합니다.

  1. 수준을 설정하는 데 필요한 권한이 있는 역할 에 액세스할 수 있는지 확인합니다.

  2. 수집할 원격 분석 데이터에 따라 ALTER ACCOUNT 명령을 사용하여 적절한 매개 변수를 설정합니다.

    사용할 수 있는 수준의 목록은 로깅, 메트릭 및 추적 수준 이해하기 섹션을 참조하십시오.

    다음 예제에서는 계정의 로그 수준을 ERROR로 설정합니다.

    -- Set the log level on the account
    ALTER ACCOUNT SET LOG_LEVEL = ERROR;
    
    Copy

오브젝트의 수준 설정하기

각 유형의 원격 분석 데이터에 대해 다음 오브젝트의 수준을 설정할 수 있습니다.

  • 저장 프로시저

  • 사용자 정의 함수(UDF) 또는 사용자 정의 테이블 함수(UDTF)

  • 프로시저와 함수를 포함하는 데이터베이스 또는 스키마

참고

Streamlit 오브젝트에는 수준을 설정할 수 없습니다. 대신, 오브젝트가 포함된 데이터베이스나 스키마에 수준을 설정합니다.

필요한 권한이 있는지 확인

오브젝트에 수준을 설정하려면 아래 설명된 권한이 부여되거나 상속되는 역할을 사용해야 합니다.

권한에 대한 자세한 내용은 액세스 제어 권한 섹션을 참조하십시오.

수정할 수준

설정할 매개 변수

필요한 권한

로그 수준

LOG_LEVEL

  • 계정에 대한 MODIFY LOG LEVEL 권한

  • 수준을 설정할 오브젝트의 MODIFY

  • 수준을 설정할 프로시저 또는 UDF가 포함된 데이터베이스 또는 스키마에 대한 USAGE

메트릭 수준

METRIC_LEVEL

  • 계정에 대한 MODIFY METRIC LEVEL 권한

  • 수준을 설정할 오브젝트의 MODIFY

  • 수준을 설정할 프로시저 또는 UDF가 포함된 데이터베이스 또는 스키마에 대한 USAGE

추적 수준

TRACE_LEVEL

  • 계정에 대한 MODIFY TRACE LEVEL 권한

  • 수준을 설정할 오브젝트의 MODIFY

  • 수준을 설정할 프로시저 또는 UDF가 포함된 데이터베이스 또는 스키마에 대한 USAGE

다음 예제의 코드는 central_log_admin 역할을 사용하는 사용자에게 db1 데이터베이스의 로그 수준을 설정하는 데 필요한 권한을 부여합니다.

GRANT MODIFY LOG LEVEL ON ACCOUNT TO ROLE central_log_admin;
GRANT MODIFY ON DATABASE db1 TO ROLE central_log_admin;
Copy

Snowsight 에서 데이터베이스 또는 스키마에 수준 설정하기

참고

로깅 및 추적에 대한 Snowsight 지원은 모든 계정에서 미리 보기 기능으로 제공됩니다.

Snowsight 를 사용하여 원격 분석 수준을 설정할 수 있습니다. 시작하기 전에, 수준을 설정하는 데 필요한 권한이 있는 역할 에 액세스할 수 있는지 확인합니다.

  1. 수준을 설정하는 데 필요한 권한이 있는 역할 에 액세스할 수 있는지 확인합니다.

  2. Snowsight 에 로그인합니다.

  3. 탐색 메뉴에서 Monitoring » Traces and Logs 를 선택합니다.

  4. Traces & Logs 페이지에서 Set Event Level 을 선택합니다.

  5. Set logging & tracing for 의 경우 수준을 설정할 데이터베이스와 선택 사항으로 스키마를 선택합니다.

  6. 조정할 원격 분석 데이터 수준을 선택합니다.

    All Events

    모든 종류의 원격 분석 데이터 수집을 켜려면 On, 모든 종류의 데이터 수집을 켜려면 Off.

    Traces

    추적 데이터 수집을 ALWAYS 로 설정하려면 On, 추적 데이터 수집을 OFF 로 설정하려면 Off. 수준에 대한 내용은 TRACE_LEVEL 섹션을 참조하십시오.

    Logs

    로그 데이터 수집을 INFO 로 설정하려면 On. 수준에 대한 내용은 LOG_LEVEL 섹션을 참조하십시오.

    Metrics

    추적 데이터 수집을 ALL 로 설정하려면 On, 추적 데이터 수집을 NONE 으로 설정하려면 Off. 수준에 대한 내용은 METRIC_LEVEL 섹션을 참조하십시오.

SQL을 사용하여 데이터베이스, 스키마 또는 기타 오브젝트에서 수준 설정하기

SQL을 사용하여 로깅, 메트릭 및 추적에 대한 수준을 설정할 수 있습니다.

오브젝트의 원격 분석 수준을 설정하려면 다음을 수행합니다.

  1. 수준을 설정하는 데 필요한 권한이 있는 역할 에 액세스할 수 있는지 확인합니다.

  2. ALTER <오브젝트> 명령을 사용하여 오브젝트에 대한 LOG_LEVEL 매개 변수를 설정합니다.

    사용할 수 있는 수준의 목록은 로깅, 메트릭 및 추적 수준 이해하기 섹션을 참조하십시오.

    예를 들어 특정 UDF에 대한 로그 수준을 설정하려면 ALTER FUNCTION 을 사용하여 해당 UDF의 LOG_LEVEL 매개 변수를 설정하십시오. 또 다른 예로, 데이터베이스의 모든 함수와 프로시저에 대한 기본 로그 수준을 설정하려면 ALTER DATABASE 를 사용하여 해당 데이터베이스에 대한 LOG_LEVEL 매개 변수를 설정하십시오.

    다음 예제에서는 데이터베이스 db 의 모든 함수와 프로시저에 대해 로그 수준을 ERROR로 설정합니다. 이 예제에서는 UDF f1(int) 에 대해 이 수준을 WARN으로 재정의합니다.

    USE ROLE central_log_admin;
    
    -- Set the log levels on a database and UDF.
    ALTER DATABASE db1 SET LOG_LEVEL = ERROR;
    ALTER FUNCTION f1(int) SET LOG_LEVEL = WARN;
    
    Copy

    LOG LEVEL이 다양한 오브젝트에 설정된 경우 Snowflake가 유효 로그 수준을 결정하는 자세한 방법은 Snowflake가 효과 수준을 결정하는 방식 이해하기 섹션을 참조하십시오.

현재 세션의 수준 설정하기

현재 세션에서 수행된 함수 및 프로시저 호출에 대한 수준을 설정합니다.

  1. 세션에서 수준을 설정할 수 있는 권한이 있는지 확인합니다.

    설정하는 수준에 따라 다음 권한이 부여된 역할을 사용해야 합니다.

    수정할 수준

    설정할 매개 변수

    필요한 권한

    로그 수준

    LOG_LEVEL

    MODIFY SESSION LOG LEVEL

    메트릭 수준

    METRIC_LEVEL

    MODIFY SESSION METRIC LEVEL

    추적 수준

    TRACE_LEVEL

    MODIFY SESSION TRACE LEVEL

    예를 들어 developer_debugging 역할에 현재 세션의 로그 수준을 설정할 권한을 부여하려면 다음 문을 실행하십시오.

    GRANT MODIFY SESSION LOG LEVEL ON ACCOUNT TO ROLE developer_debugging;
    
    Copy
  2. ALTER SESSION 명령을 사용하여 현재 세션에 대한 LOG_LEVEL 매개 변수를 설정합니다.

    예:

    USE ROLE developer_debugging;
    
    -- Set the logging level to DEBUG for the current session.
    ALTER SESSION SET LOG_LEVEL = DEBUG;
    
    Copy

현재 세션과 해당 세션에서 호출되는 함수 및 프로시저에 대해 레벨 매개 변수가 다른 레벨로 설정되어 있는 경우 Snowflake는 사용할 유효 수준을 결정합니다. Snowflake가 효과 수준을 결정하는 방식 이해하기 섹션을 참조하십시오.

Snowflake가 효과 수준을 결정하는 방식 이해하기

수준의 계층 구조 ` 를 사용하여 (오브젝트세션 모두에 대한) 매개 변수를 재정의할 수 있습니다.

예를 들어, 계정에 대해 1개의 값을 설정한 다음 계층 구조에서 더 낮은 오브젝트에 대한 수준을 설정하여 해당 수준을 재정의할 수 있습니다.

다음은 세션 및 오브젝트 수준 매개 변수의 계층 구조에 대한 설명입니다.

  • 세션 매개 변수 의 경우 계층 구조는 계정 » 사용자 » 세션입니다.

    이는 계정에 대한 매개 변수를 설정하고, 사용자에 대한 계정 수준 매개 변수를 재정의하며, 현재 세션에 대한 사용자 수준 매개 변수를 재정의할 수 있다는 뜻입니다.

  • 오브젝트 매개 변수 의 경우 계층 구조는 계정 » 데이터베이스 » 스키마 » 오브젝트입니다.

    이는 계정에 대한 매개 변수를 설정하고, 데이터베이스 또는 스키마에 대한 계정 수준 매개 변수를 재정의하며, 특정 저장 프로시저에 대한 데이터베이스 수준 또는 스키마 수준의 매개 변수와 해당 데이터베이스 또는 스키마의 UDF를 재정의할 수 있다는 뜻입니다.

예를 들어 함수의 LOG_LEVEL은 함수를 포함한 계정의 LOG_LEVEL을 재정의합니다. 계정의 LOG_LEVEL이 FATAL이고 계정에 있는 Java UDF의 LOG_LEVEL이 INFO인 경우 유효 LOG_LEVEL(계정이 아닌 함수의 수준)은 INFO입니다.

ALTER ACCOUNT SET LOG_LEVEL = FATAL;

ALTER FUNCTION MyJavaUDF SET LOG_LEVEL = INFO;

-- The INFO log level is used because the FUNCTION MYJAVAUDF
-- is lower than the ACCOUNT in the hierarchy.
Copy

세션 및 오브젝트 매개 변수 계층 구조 모두에 수준이 설정되어 있는 경우 가장 자세한 수준이 사용됩니다.

  • 로그 수준에 대해, 다음 테이블에는 세션과 오브젝트에 설정된 매개 변수가 사용되는 로그 수준에 미치는 영향에 대한 예가 나와 있습니다.

    세션의 값

    오브젝트, 스키마, 데이터베이스 또는 계정의 값

    사용된 로그 수준

    (설정되지 않음)

    WARN

    WARN

    DEBUG

    (설정되지 않음)

    DEBUG

    WARN

    ERROR

    WARN

    INFO

    DEBUG

    DEBUG

    (설정되지 않음)

    (설정되지 않음)

    OFF

  • 메트릭 수준의 경우 — ALLNONE 을 재정의합니다.

  • 추적 수준의 경우 — ALWAYSON_EVENTOFF 를 재정의하고, ON_EVENTOFF 를 재정의합니다.