Snowflake

개요

새로운 Snowflake 통합은 Datadog 에이전트 기반 Snowflake 통합을 대체하며 추가 기능을 제공합니다. 새 Snowflake 통합을 설정한 후 에이전트 기반 Snowflake를 제거하여 Snowflake에 대한 API 호출량을 줄이는 것이 좋습니다.

Snowflake 인프라스트럭처 및 데이터 검색을 효과적으로 모니터링하고 최적화하기는 어려울 수 있습니다. 문제가 발생하여 비효율적 리소스 활용, 더 높아진 비용, 고객 경험 저하 등으로 이어질 수 있습니다.

Datadog 의 Snowflake 통합을 사용하면 장기 실행 쿼리를 발견하여 성능을 개선하고 비용을 절감하며, 실시간 보안 위협을 식별하고, Snowpark 워크로드를 모니터링할 수 있습니다.

Snowflake 데이터를 구문 분석한 후 Datadog는 즉기 사용 가능한 개요 대시보드를 수집한 전체 리소스에 대한 인사이트로 채웁니다. 이러한 대시보드는 또한 추천 모니터를 제공하여 Snowpark 실행 실패나 로그인 시도 횟수 이상과 같은 이벤트에 대한 알림을 받을 수 있도록 해줍니다.

참고: 메트릭은 쿼리로 수집되며, 쿼리는 Datadog 통합에서 생성되고 Snowflake에서 청구됩니다.

설정

설치

설치 단계가 필요하지 않습니다.

설정

Snowflake 계정과 연결

  1. Snowflake 계정 URL을 찾습니다.
Snowflake UI에서 선택된 계정 URL 복사 옵션이 포함된 계정 메뉴
  1. Snowflake 통합 타일계정 URL 필드에 Snowflake 계정 URL을 입력합니다.

  2. 리소스 컬렉션 탭 에서 수집하려는 리소스를 활성화합니다.

계정 및 조직 사용량 메트릭

하단 표는 수집되는 메트릭 유형과 관련 메트릭 접두어에 대해 설명합니다.

유형설명수집된 메트릭 접두어
계정 사용량계정 수준에서 사용량, 크레딧 사용량, 쿼리 메트릭을 보관합니다.
매 시간 수집됩니다.
snowflake.auto_recluster
snowflake.billing
snowflake.data_transfer
snowflake.logins
snowflake.pipe
snowflake.query
snowflake.replication
snowflake.storage
snowflake.storage.database
snowflake.storage.table
조직 사용량조직 수준에서 크레딧 사용량, 데이터 전송 기록 및 예산 메트릭을 보관합니다.
매 시간 수집됩니다.
snowflake.organization
로그

아래 표에서는 수집된 로그 유형과 포함된 Snowflake 테이블에 대해 설명합니다.

유형설명필수 테이블
쿼리 기록쿼리 실행 기록입니다. 쿼리 기록 로그와 액세스 기록 로그를 함께 사용하면 쿼리와 쿼리 내역을 통해 데이터가 사용되는 방식에 대한 인사이트를 얻을 수 있습니다.SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
보안Cloud SIEM과 함께 이러한 로그를 활용하여 사용자 환경에서 보안 위협을 보다 효율적으로 탐지하고 이에 대응할 수 있습니다.SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
SNOWFLAKE.ACCOUNT_USAGE.SESSIONS
SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_USERS
SNOWFLAKE.ACCOUNT_USAGE.DATA_TRANSFER_HISTORY
SNOWFLAKE.ACCOUNT_USAGE.STAGES
이벤트 테이블함수 및 기타 절차에서 수집된 메시지와 이벤트 데이터를 보여줍니다. 허가(GRANT) 권한이 추가로 필요합니다.커스텀 이벤트 테이블
클라우드 비용 관리

클라우드 비용 관리를 사용 설정하여 SNOWFLAKE.ORGANIZATION_USAGE.USAGE_IN_CURRENCY_DAILY 테이블에서 집계된 Snowflake 비용 메트릭을 받습니다. 이 메트릭을 클라우드 비용 관리와 함께 사용하여 비용 및 사용량에 대한 추가 인사이트를 얻을 수 있습니다.

  1. Datadog에 대한 역할 및 사용자를 생성하여 Snowflake를 모니터링하는 데 사용합니다. Snowflake 환경에서 아래 일련의 명령을 실행하여 Datadog에 액세스할 수 있는 사용자를 생성할 수 있습니다.

권장 창고 설정

  • 자동 일시 중단 시간이 30초인 XS 웨어하우스를 생성합니다.
  • 선택적으로, 일반적으로 하루 종일 활성화되어 있는 기존 XS 웨어하우스를 사용하는 것이 가장 비용 효율적인 옵션일 수 있습니다. 참고: 통합 에서 만든 쿼리 은 기존 웨어하우스의 성능에 영향을 미칠 수 있습니다. 쿼리 성능이 중요한 웨어하우스에서 통합 을 실행하는 것은 권장 이 아닙니다.
 -- Snowflake 사용량 모니터링을 위한 새로운 역할을 생성하세요. 역할의 이름은 커스터마이즈할 수 있습니다.
create role DATADOG;

-- SNOWFLAKE 데이터베이스에서 새로운 역할에 대한 권한을 허가합니다.
grant imported privileges on database SNOWFLAKE to role DATADOG;

-- DATADOG 역할에 기본 웨어하우스 사용량에 대한 권한을 허가합니다..
grant usage on warehouse <WAREHOUSE> to role DATADOG;

-- 새 역할에 다음 ACCOUNT_USAGE 보기에 대한 권한을 부여합니다. Snowflake 계정 사용량 로그 및 메트릭을 수집하려면 수행합니다.
grant database role SNOWFLAKE.OBJECT_VIEWER to role DATADOG;
grant database role SNOWFLAKE.USAGE_VIEWER to role DATADOG;
grant database role SNOWFLAKE.GOVERNANCE_VIEWER to role DATADOG;
grant database role SNOWFLAKE.SECURITY_VIEWER to role DATADOG;

-- 새 역할에 ORGANIZATION_USAGE_VIEWER 권한을 부여합니다. Snowflake 조직 사용량 메트릭을 수집하려면 수행합니다.
grant database role SNOWFLAKE.ORGANIZATION_USAGE_VIEWER to role DATADOG;

-- 새 역할에 ORGANIZATION_BILLING_VIEWER 권한을 부여합니다. Snowflake 비용 데이터를 수집하려면 이를 수행합니다.
grant database role SNOWFLAKE.ORGANIZATION_BILLING_VIEWER to role DATADOG;

-- 이벤트 테이블의 데이터베이스, 스키마와 테이블에 대한 사용량 권한을 부여합니다.
grant usage on database <EVENT_TABLE_DATABASE> to role DATADOG;
grant usage on schema <EVENT_TABLE_DATABASE>.<EVENT_TABLE_SCHEMA> to role DATADOG;
grant select on table <EVENT_TABLE_DATABASE>.<EVENT_TABLE_SCHEMA>.<EVENT_TABLE_NAME> to role DATADOG;
grant application role SNOWFLAKE.EVENTS_VIEWER to role DATADOG;
grant application role SNOWFLAKE.EVENTS_ADMIN to role DATADOG;

-- 사용자를 생성합니다.
create user <USERNAME>
LOGIN_NAME = <USERNAME>
password = '<PASSWORD>'
default_warehouse =<WAREHOUSE>
default_role = DATADOG;

-- 사용자에게 모니터 역할을 부여합니다.
grant role DATADOG to user <USERNAME>
  1. 키-쌍 인증을 설정합니다. 공개 키는 이전에 생성한 사용자에게 할당되며 비공개 키는 Datadog에 업로드되어 Datadog가 Snowflake 계정에 연결할 수 있도록 해줍니다. a. Snowflake 지침에 따라 비공개 키를 생성하고 업로드합니다. Datadog는 현재 암호화되지 않은 비공개 키만 지원합니다. b. Snowflake 지침에 따라 공개 키를 생성합니다.
    c. Snowflake 지침에 따라 앞서 생성한 사용자에게 공개 키를 할당합니다.
Datadog가 Snowflake 계정에서 데이터를 수집하려면 특정 IP 주소 접두어를 허용 목록에 추가해야 합니다. IP 범위 페이지에서 Datadog에 속한 IP 접두어 목록을 확인할 수 있으며, 허용할 범위는 웹훅 아래에서 확인할 수 있습니다.

커스텀 메트릭

Snowflake 통합은 커스텀 쿼리 를 지원하며 커스텀 메트릭를 수집합니다. 사용자는 커스텀 SQL 쿼리를 작성하여 특정 데이터를 추출하고 Datadog에서 메트릭 및 메트릭 태그로 확인할 수 있습니다.

기본적으로 통합은 공유 SNOWFLAKE 데이터베이스 및 ACCOUNT_USAGE 스키마에 연결됩니다. ACCOUNT_USAGE 스키마 외부의 테이블을 쿼리하는 경우에는 설정된 역할에 해당 테이블에 액세스할 수 있는 적절한 권한이 있는지 확인하세요.

아래 표는 커스텀 메트릭을 정의하는 데 사용되는 필드를 설명합니다.

필드설명필수
커스텀 메트릭 식별자커스텀 메트릭의 식별자로, 각 계정의 각기 다른 커스텀 메트릭을 각각의 커스텀 쿼리 에 연결하는 데 사용됩니다.Yes
쿼리실행할 SQL입니다. 간단한 문이나 여러 줄의 스크립트일 수 있습니다. 결과의 모든 행이 평가됩니다.Yes
메타데이터 열각 열을 왼쪽에서 오른쪽으로 순차적으로 정렬한 목록입니다. 각 열에는 두 개의 필수 필드가 있습니다:
- 커스텀 열 이름**:
metric_prefix에 추가하여 전체 메트릭 이름을 형성하는 접미사입니다. 예를 들어 my_custom_metric.count는 전체 메트릭 이름 snowflake.my_custom_metric.count이 됩니다. 유형이 Tag Key로 지정된 경우, 열은 이 쿼리에서 수집한 모든 메트릭에 태그로 적용됩니다.
- 메타데이터 유형:
제출 방법(예: 게이지, 카운트 또는 비율)입니다. 이 열에 있는 항목의 이름과 값(<NAME>:<ROW_VALUE>)을 사용해 행에 있는 각 매트릭을 태그로 설정할 수도 있습니다.
Yes

참고:

  • 정의된 열의 항목 중 하나 이상은 메트릭 유형(게이지, 카운트, 요금, 분포)이어야 합니다.
  • 열의 항목 수는 쿼리에 반환된 열 수와 동일해야 합니다.
  • 열의 항목이 정의되는 순서는 쿼리에서 반환된 순서와 동일해야 합니다.

:

Snowflake 통합 타일의 커스텀 메트릭 탭

검증

결과를 확인하려면 메트릭 요약에서 메트릭을 사용하여 검색하세요.

메트릭 요약 페이지의 Snowflake 메트릭

수집한 데이터

메트릭

snowflake.storage.storage_bytes.total
(gauge)
The average number of bytes of table storage used including bytes for data currently in Time Travel.
Shown as byte
snowflake.storage.stage_bytes.total
(gauge)
The average number of bytes of stage storage used by files in all internal stages.
Shown as byte
snowflake.storage.failsafe_bytes.total
(gauge)
The average number of bytes of data in Fail-safe.
Shown as byte
snowflake.storage.database.storage_bytes
(gauge)
The average number of bytes of database storage used.
Shown as byte
snowflake.storage.database.failsafe_bytes
(gauge)
The average number of bytes of Fail-safe storage used.
Shown as byte
snowflake.billing.virtual_warehouse.avg
(gauge)
The average overall credits billed per hour for virtual warehouses.
Shown as unit
snowflake.billing.virtual_warehouse.sum
(gauge)
The sum of overall credits billed for virtual warehouses.
Shown as unit
snowflake.billing.cloud_service.avg
(gauge)
The average overall credits billed per hour for cloud services.
Shown as unit
snowflake.billing.cloud_service.sum
(gauge)
The total overall credits billed for cloud services.
Shown as unit
snowflake.billing.total_credit.avg
(gauge)
The average overall of credits used per hour for the account. This is the sum of snowflake.billing.cloudservice and snowflake.billing.virtualwarehouses.
Shown as unit
snowflake.billing.total_credit.sum
(gauge)
The total overall of credits used for the account. This is the sum of snowflake.billing.cloudservice and snowflake.billing.virtualwarehouses.
Shown as unit
snowflake.billing.warehouse.cloud_service.avg
(gauge)
The average credits used per hour for cloud services by warehouse.
Shown as unit
snowflake.billing.warehouse.cloud_service.sum
(gauge)
The total credits used for cloud services by warehouse.
Shown as unit
snowflake.billing.warehouse.virtual_warehouse.avg
(gauge)
The average credits used per hour by warehouse.
Shown as unit
snowflake.billing.warehouse.virtual_warehouse.sum
(gauge)
The total credits used by warehouse.
Shown as unit
snowflake.billing.warehouse.total_credit.avg
(gauge)
The average total number of credits used per hour for the warehouse. NOTE: This value does not take into account adjustments which may be higher than your actual credit consumption.
Shown as unit
snowflake.billing.warehouse.total_credit.sum
(gauge)
The total number of credits used for the warehouse. NOTE: This value does not take into account adjustments which may be higher than your actual credit consumption.
Shown as unit
snowflake.logins.fail.count
(count)
Total failed login attempts.
Shown as error
snowflake.logins.success.count
(count)
Total successful login attempts.
Shown as success
snowflake.logins.total
(count)
Total number of login attempts.
Shown as attempt
snowflake.query.executed
(gauge)
The average number of queries executed.
Shown as query
snowflake.query.queued_overload
(gauge)
Average number of queries queued because the warehouse was overloaded.
Shown as query
snowflake.query.queued_provision
(gauge)
Average number of queries queued because the warehouse was being provisioned.
Shown as query
snowflake.query.blocked
(gauge)
Average number of queries blocked by a transaction lock.
Shown as query
snowflake.query.execution_time
(gauge)
Average query execution time.
Shown as millisecond
snowflake.query.compilation_time
(gauge)
Average query compilation time.
Shown as millisecond
snowflake.query.bytes_scanned
(gauge)
Average query bytes scanned.
Shown as byte
snowflake.query.bytes_written
(gauge)
Average query bytes written.
Shown as byte
snowflake.query.bytes_deleted
(gauge)
Average query bytes deleted.
Shown as byte
snowflake.data_transfer.bytes.avg
(gauge)
Average bytes transferred.
Shown as byte
snowflake.data_transfer.bytes.sum
(gauge)
Total bytes transferred.
Shown as byte
snowflake.auto_recluster.credits_used.avg
(gauge)
Average credits billed for automatic reclustering.
Shown as unit
snowflake.auto_recluster.credits_used.sum
(gauge)
Total credits billed for automatic reclustering.
Shown as unit
snowflake.auto_recluster.bytes_reclustered.avg
(gauge)
Average bytes reclustered.
Shown as byte
snowflake.auto_recluster.bytes_reclustered.sum
(gauge)
Total bytes reclustered.
Shown as byte
snowflake.auto_recluster.rows_reclustered.avg
(gauge)
Average rows reclustered.
Shown as row
snowflake.auto_recluster.rows_reclustered.sum
(gauge)
Total rows reclustered.
Shown as row
snowflake.storage.table.active_bytes.avg
(gauge)
Average bytes owned by (and billed to) this table that are in the active state.
Shown as byte
snowflake.storage.table.time_travel_bytes.avg
(gauge)
Average bytes owned by (and billed to) this table that are in the Time Travel state.
Shown as byte
snowflake.storage.table.failsafe_bytes.avg
(gauge)
Average bytes owned by (and billed to) this table that are in the Fail-safe state.
Shown as byte
snowflake.storage.table.retained_bytes.avg
(gauge)
Average bytes owned by (and billed to) this table that are retained after deletion because they are referenced by one or more clones of this table.
Shown as byte
snowflake.pipe.credits_used.avg
(gauge)
Average number of credits billed for Snowpipe data loads.
Shown as unit
snowflake.pipe.credits_used.sum
(gauge)
Total number of credits billed for Snowpipe data loads.
Shown as unit
snowflake.pipe.bytes_inserted.avg
(gauge)
Average number of bytes loaded from Snowpipe.
Shown as byte
snowflake.pipe.bytes_inserted.sum
(gauge)
Total number of bytes loaded from Snowpipe.
Shown as byte
snowflake.pipe.files_inserted.avg
(gauge)
Average number of files loaded from Snowpipe.
Shown as file
snowflake.pipe.files_inserted.sum
(gauge)
Total number of files loaded from Snowpipe.
Shown as file
snowflake.replication.credits_used.avg
(gauge)
Average number of credits used for database replication.
Shown as unit
snowflake.replication.credits_used.sum
(gauge)
Total number of credits used for database replication.
Shown as unit
snowflake.replication.bytes_transferred.avg
(gauge)
Average number of bytes transferred for database replication.
Shown as byte
snowflake.replication.bytes_transferred.sum
(gauge)
Total number of bytes transferred for database replication.
Shown as byte
snowflake.query.bytes_spilled.local
(gauge)
Avg volume of data spilled to local disk.
Shown as byte
snowflake.query.bytes_spilled.remote
(gauge)
Avg volume of data spilled to remote disk.
Shown as byte
snowflake.organization.contract.amount
(gauge)
The average amount for the given contract
snowflake.organization.credit.virtual_warehouse.sum
(gauge)
The sum of credits used by warehouse.
snowflake.organization.credit.virtual_warehouse.avg
(gauge)
The average credits used per day by warehouse.
snowflake.organization.credit.cloud_service.sum
(gauge)
The sum of credits billed for cloud services
snowflake.organization.credit.cloud_service.avg
(gauge)
The average overall credits billed for cloud services
snowflake.organization.credit.cloud_service_adjustment.sum
(gauge)
Sum of credits adjusted for included cloud services.
snowflake.organization.credit.cloud_service_adjustment.avg
(gauge)
Average of credits adjusted for included cloud services.
snowflake.organization.credit.total_credit.sum
(gauge)
The sum of overall of credits used for the organization. This is the sum of snowflake.organization.credit.cloudservice.sum and snowflake.organization.credit.virtualwarehouse.sum.
snowflake.organization.credit.total_credit.avg
(gauge)
The average number of overall of credits used for the organization. This is the sum of snowflake.organization.credit.cloudservice.avg and snowflake.organization.credit.virtualwarehouse.avg.
snowflake.organization.credit.total_credits_billed.sum
(gauge)
The total number of credits billed for the account in the day. It is the sum of snowflake.organization.credit.cloudservice.sum, snowflake.organization.credit.virtualwarehouse.sum, and snowflakeweb.organization.credit.cloudservice_adjustment.sum.
snowflake.organization.credit.total_credits_billed.avg
(gauge)
The average number of credits billed for the account in the day. It is the sum of snowflake.organization.credit.cloudservice.avg, snowflake.organization.credit.virtualwarehouse.avg, and snowflakeweb.organization.credit.cloudservice_adjustment.avg.
snowflake.organization.currency.usage
(gauge)
Sum of the total number of credits charged per day.
snowflake.organization.currency.usage_in_currency
(gauge)
Sum of the total amount charged for the day.
snowflake.organization.warehouse.virtual_warehouse.sum
(gauge)
Sum of number of credits used for the warehouse.
snowflake.organization.warehouse.virtual_warehouse.avg
(gauge)
Average number of credits used for the warehouse.
snowflake.organization.warehouse.cloud_service.avg
(gauge)
Average number of credits used for cloud services.
snowflake.organization.warehouse.cloud_service.sum
(gauge)
Sum of credits used for cloud services.
snowflake.organization.warehouse.total_credit.sum
(gauge)
The total number of credits used by the warehouse. Sum of snowflake.organization.warehouse.cloudservice.sum and snowflake.organization.warehouse.totalcredit.sum.
snowflake.organization.warehouse.total_credit.avg
(gauge)
The average total number of credits used by the warehouse. Sum of snowflake.organization.warehouse.cloudservice.avg and snowflake.organization.warehouse.totalcredit.avg
snowflake.organization.storage.average_bytes
(gauge)
Number of bytes of database storage used, including data in Time Travel and Fail-safe.
Shown as byte
snowflake.organization.storage.credits
(gauge)
Sum of total number of credits used for all accounts in the organization. Sum of credits used for database storage and stages.
snowflake.organization.rate.effective_rate
(gauge)
The rate after applying any applicable discounts per the contract for the organization.
snowflake.organization.data_transfer.bytes_transferred
(gauge)
Number of bytes transferred during the usage date.
Shown as byte
snowflake.organization.balance.capacity
(gauge)
The amount of capacity in currency that is available for use. This is the end of day balance.
snowflake.organization.balance.on_demand_consumption
(gauge)
The amount of consumption at on demand prices that will be invoiced given that all the free usage and capacity balances have been exhausted. This is a negative value (e.g. -250) until the invoice is paid. This is the end of day balance.
snowflake.organization.balance.rollover
(gauge)
The amount of rollover balance in currency that is available for use. At the end of a contract term
snowflake.organization.balance.free_usage
(gauge)
The amount of free usage in currency that is available for use. This is the end of day balance

이벤트

Snowflake 웹 통합에는 이벤트가 포함되어 있지 않습니다.

서비스 점검

Snowflake 웹 통합에는 서비스 점검이 포함되어 있지 않습니다.

트러블슈팅

도움이 필요하신가요? Datadog 고객 지원팀에 문의하세요.

에이전트 점검: Snowflake

Snowflake 에이전트 점검은 더 이상 지원되지 않으며, 추가 기능을 사용하고 Snowflake로의 API 통화량을 줄이려면 새로운 Snowflake 통합으로 전환하는 것이 좋습니다.

에이전트: 개요

이 점검은 Datadog 에이전트를 통해 Snowflake를 모니터링합니다. Snowflake는 SaaS 분석 데이터 웨어하우스이며 클라우드 인프라스트럭처에서 완벽하게 실행됩니다. 이 통합은 크레딧 사용량, 빌링, 스토리지, 쿼리 메트릭 등을 모니터링합니다.

참고: 메트릭은 Snowflake에 대한 쿼리를 통해 수집됩니다. Datadog 통합으로 생성된 쿼리는 Snowflake에서 청구 가능합니다..

에이전트: 설정

호스트에서 실행되는 Agent에 대해 이 검사를 설치하고 구성하려면 아래 지침을 따르세요.

에이전트: 설치

Snowflake 점검이 Datadog 에이전트 패키지에 포함되어 있습니다.

참고: Datadog 에이전트 v6에서는 파이썬(Python) 2를 사용하여 스노우플레이크 점검을 사용할 수 없습니다. 에이전트 v6에서 Snowflake를 사용하려면 Datadog 에이전트 v6에서 파이썬(Python) 3 사용을 참조하거나 에이전트 v7로 업그레이드하세요.

에이전트: 설정

Snowflake에서는 `SYSADMIN`과 같은 대체 역할에 권한을 부여할 것을 권장합니다. 자세한 내용은 ACCOUNTADMIN 역할 제어를 참고하세요.
  1. Snowflake를 모니터링하려면 Datadog 특정 역할과 사용자를 생성하세요. Snowflake에서 다음을 실행하여 ACCOUNT_USAGE 스키마에 대한 액세스 권한이 있는 커스텀 역할을 생성합니다.

    참고: 기본적으로 이 통합은 SNOWFLAKE 데이터베이스와 ACCOUNT_USAGE 스키마를 모니터링합니다. ORGANIZATION_USAGE 스키마를 모니터링하는 방법에 대한 자세한 내용은 “Collecting Organization Data"를 참조하세요. 이 데이터베이스는 기본적으로 사용 가능하며 ACCOUNTADMIN 역할 또는 계정 관리자가 부여한 모든 역할의 사용자만 볼 수 있습니다.

    use role ACCOUNTADMIN;
    grant imported privileges on database snowflake to role SYSADMIN;
    
    use role SYSADMIN;
    

    또는 ACCOUNT_USAGE에 대한 액세스 권한이 있는 DATADOG 커스텀 역할을 생성할 수 있습니다..

    -- Snowflake 사용량을 모니터링하기 위한 새 역할을 만듭니다.
    create role DATADOG;
    
    -- SNOWFLAKE 데이터베이스에 대한 권한을 새 역할에 부여합니다.
    grant imported privileges on database SNOWFLAKE to role DATADOG;
    
    -- DATADOG 역할에 기본 웨어하우스 대한 사용 권한을 부여합니다.
    grant usage on warehouse <WAREHOUSE> to role DATADOG;
    
    -- 사용자를 생성합니다. 기존 사용자를 사용하는 경우 이 단계를 건너뜁니다.
    create user DATADOG_USER
    LOGIN_NAME = DATADOG_USER
    password = '<PASSWORD>'
    default_warehouse = <WAREHOUSE>
    default_role = DATADOG
    default_namespace = SNOWFLAKE.ACCOUNT_USAGE;
    
    -- 사용자에게 모니터 역할을 부여합니다.
    grant role DATADOG to user <USER>;
    
  2. 에이전트 설정 디렉터리 루트의 conf.d/ 폴더에 있는 snowflake.d/conf.yaml 파일을 편집하여 Snowflake 성능 데이터 수집을 시작합니다. 사용 가능한 모든 설정 옵션은 sample snowflake.d/conf.yaml을 참조하세요.

        ## @param account - string - required
        ## Name of your account (provided by Snowflake), including the platform and region if applicable.
        ## For more information on Snowflake account names,
        ## see https://docs.snowflake.com/en/user-guide/connecting.html#your-snowflake-account-name
        #
      - account: <ORG_NAME>-<ACCOUNT_NAME>
    
        ## @param username - string - required
        ## Login name for the user.
        #
        username: <USER>
    
        ## @param password - string - required
        ## Password for the user
        #
        password: <PASSWORD>
    
        ## @param role - string - required
        ## Name of the role to use.
        ##
        ## By default, the SNOWFLAKE database is only accessible by the ACCOUNTADMIN role. Snowflake recommends
        ## configuring a role specific for monitoring:
        ## https://docs.snowflake.com/en/sql-reference/account-usage.html#enabling-account-usage-for-other-roles
        #
        role: <ROLE>
    
        ## @param min_collection_interval - number - optional - default: 15
        ## This changes the collection interval of the check. For more information, see:
        ## https://docs.datadoghq.com/developers/write_agent_check/#collection-interval
        ##
        ## NOTE: Most Snowflake ACCOUNT_USAGE views are populated on an hourly basis,
        ## so to minimize unnecessary queries, set the `min_collection_interval` to 1 hour.
        #
        min_collection_interval: 3600
    
        # @param disable_generic_tags - boolean - optional - default: false
        # Generic tags such as `cluster` will be replaced by <INTEGRATION_NAME>_cluster to avoid
        # getting mixed with other integration tags.
        # disable_generic_tags: true
    
    In the default `conf.yaml`, the min_collection_interval is 1 hour. Snowflake metrics are aggregated by day, you can increase the interval to reduce the number of queries.
    Note: Snowflake ACCOUNT_USAGE views have a known latency of 45 minutes to 3 hours.
  3. 에이전트를 다시 시작합니다.

조직 데이터 수집

기본적으로 이 통합은 ACCOUNT_USAGE 스키마를 모니터링하지만 대신 조직 수준 메트릭을 모니터링하도록 설정할 수 있습니다.

조직 메트릭을 수집하려면 통합 구성에서 스키마 필드를 ORGANIZATION_USAGE로 변경하고 min_collection_interval을 43200으로 늘립니다. 대부분의 조직 쿼리에는 최대 24시간의 지연 시간이 있으므로 이렇게 하면 Snowflake에 대한 쿼리 수가 줄어듭니다.

참고: 조직 메트릭을 모니터링하려면, userORGADMIN 역할이 부여되어 있어야 합니다.

    - schema: ORGANIZATION_USAGE
      min_collection_interval: 43200

기본적으로 일부 조직 메트릭만 활성화됩니다. 사용 가능한 모든 조직 메트릭을 수집하려면 metric_groups 구성 옵션을 활용하세요.

    metric_groups:
      - snowflake.organization.warehouse
      - snowflake.organization.currency
      - snowflake.organization.credit
      - snowflake.organization.storage
      - snowflake.organization.contracts
      - snowflake.organization.balance
      - snowflake.organization.rate
      - snowflake.organization.data_transfer

또한 계정과 조직 메트릭을 동시에 모니터링할 수 있습니다.

    instances:
    - account: example-inc
      username: DATADOG_ORG_ADMIN
      password: '<PASSWORD>'
      role: SYSADMIN
      schema: ORGANIZATION_USAGE
      database: SNOWFLAKE
      min_collection_interval: 43200

    - account: example-inc
      username: DATADOG_ACCOUNT_ADMIN
      password: '<PASSWORD>'
      role: DATADOG_ADMIN
      schema: ACCOUNT_USAGE
      database: SNOWFLAKE
      min_collection_interval: 3600

여러 환경에 대한 데이터 수집

여러 Snowflake 환경에 대한 데이터를 수집하려면 각 환경을 snowflake.d/conf.yaml 파일에 인스턴스로 추가하세요. 예를 들어 이름이 DATADOG_SYSADMIN 및 이DATADOG_USER인 두 명의 사용자에 대한 데이터를 수집해야 하는 경우:

instances:
  - account: example-inc
    username: DATADOG_SYSADMIN
    password: '<PASSWORD>'
    role: SYSADMIN
    database: EXAMPLE-INC

  - account: example-inc
    username: DATADOG_USER
    password: '<PASSWORD>'
    role: DATADOG_USER
    database: EXAMPLE-INC

프록시 설정

Snowflake에서는 프록시 설정에 대한 환경 변수를 설정할 것을 권장합니다.

snowflake.d/conf.yamlinit_config에서 proxy_host, proxy_port, proxy_userproxy_password를 설정할 수도 있습니다.

참고: Snowflake는 프록시 설정을 자동으로 포맷하고 표준 프록시 환경 변수를 설정합니다. 이러한 변수는 도커(Docker), ECS, 쿠버네티스(Kubernetes) 와 같은 오케스트레이터를 포함하여 통합의 모든 요청에도 영향을 미칩니다.

Snowflake 구성에 대한 프라이빗 연결

Snowflake에서 비공개 연결(예: AWS PrivateLink)이 활성화되어 있는 경우, account 설정 옵션을 다음 형식으로 업데이트하여 Snowflake 통합을 설정할 수 있습니다.

      - account: <ACCOUNT>.<REGION_ID>.privatelink

Snowflake 커스텀 쿼리

Snowflake 통합은 커스텀 쿼리를 지원합니다. 기본적으로 통합은 공유 SNOWFLAKE 데이터베이스 및 ACCOUNT_USAGE 스키마에 연결됩니다.

다른 스키마 또는 데이터베이스에서 커스텀 쿼리를 실행하려면 sample snowflake.d/conf.yaml에 다른 인스턴스를 추가하고 databaseschema 옵션을 지정합니다. 사용자 및 역할에 지정된 데이터베이스 또는 스키마에 대한 액세스 권한이 있는지 확인합니다.

설정 옵션

custom_queries 옵션에는 다음과 같은 옵션이 있습니다.

옵션필수설명
쿼리Yes실행할 SQL입니다. 간단한 문이나 여러 줄의 스크립트일 수 있습니다. 결과의 모든 행이 평가됩니다. 여러 줄 스크립트가 필요한 경우 파이프를 사용합니다.
컬럼Yes목록 왼쪽에서 오른쪽으로 순차적으로 정렬된 각 열을 나타냅니다.

필수 데이터는 두 가지입니다.
-name**: 전체 메트릭 이름을 형성하기 위해 metric_prefix 에 추가하는 접미어입니다. typetag로 지정하면 이 열은 대신 이 쿼리에서 수집한 모든 메트릭을 태그로 적용합니다.
- type: 제출 메서드(gauge, count, rate 등)입니다. 이 열에 있는 항목의 이름과 값(<NAME>:<ROW_VALUE>)이 있는 행의 각 메트릭을 tag 태그로 설정할 수도 있습니다.
태그No각 메트릭에 적용할 정적 태그 목록입니다.
참고:
  • 정의된 columns 항목 중 하나 이상은 메트릭 유형(예: gauge, count, rate)이어야 합니다.

  • 열의 항목 수는 쿼리에서 반환되는 열의 수와 같아야 합니다.

  • columns에 정의된 항목의 순서는 쿼리에 반환된 순서와 동일해야 합니다.

custom_queries:
  - query: select F3, F2, F1 from Table;
    columns:
      - name: f3_metric_alias
        type: gauge
      - name: f2_tagkey
        type: tag
      - name: f1_metric_alias
        type: count
    tags:
      - test:snowflake

예시

다음 예는 데이터베이스, 스키마 및 웨어하우스 이름으로 태그가 지정된 QUERY_HISTORY 보기에 있는 모든 쿼리 수를 계산하는 쿼리를 보여줍니다.

select count(*), DATABASE_NAME, SCHEMA_NAME, WAREHOUSE_NAME from QUERY_HISTORY group by 2, 3, 4;
커스텀 쿼리 설정

instances에서 커스텀 쿼리 구성은 다음과 같습니다.

custom_queries:
  - query: select count(*), DATABASE_NAME, SCHEMA_NAME, WAREHOUSE_NAME from QUERY_HISTORY group by 2, 3, 4;
    columns:
      - name: query.total
        type: gauge
      - name: database_name
        type: tag
      - name: schema_name
        type: tag
      - name: warehouse_name
        type: tag
    tags:
      - test:snowflake

에이전트: 유효성 검사

에이전트 의 상태 하위 명령을 실행하고 점검 섹션에서 snowflake를 찾습니다.

에이전트: 수집된 데이터

참고: 다음 메트릭 그룹의 메트릭만 기본적으로 활성화됩니다. snowflake.query.*, snowflake.billing.*, snowflake.storage.*, snowflake.logins.*.

다른 메트릭 그룹에서 메트릭을 수집하려면 이 통합에 대한 예제 구성 파일을 참조하세요.

에이전트: 메트릭

메트릭 점검에서 제공되는 메트릭 목록을 참조하세요.

에이전트: 이벤트

Snowflake는 이벤트를 포함하지 않습니다.

에이전트: 서비스 점검

snowflake.can_connect
점검에서 Snowflake 자격 증명을 인증할 수 없는 경우 CRITICAL을 반환합니다. 그렇지 않으면 OK를 반환합니다.
Statuses: ok, critical

에이전트: 트러블슈팅

도움이 필요하신가요? Datadog 고객 지원팀에 문의하세요.

참고 자료

기타 유용한 문서, 링크 및 기사: