Supported OS Linux Mac OS Windows

インテグレーションバージョン5.6.0

概要

このチェックは、Datadog Agent を通じて Snowflake を監視します。Snowflake は SaaS 分析データウェアハウスであり、完全にクラウドインフラストラクチャー上で実行されます。 このインテグレーションにより、クレジットの使用状況、請求、ストレージ、クエリメトリクスなどが監視されます。

: メトリクスは Snowflake へのクエリとともに収集されます。Datadog インテグレーションによるクエリは、Snowflake によって課金されます。

セットアップ

以下の手順に従って、このチェックをインストールし、ホストで実行中の Agent に対して構成します。

インストール

Snowflake チェックは Datadog Agent パッケージに含まれています。

: Python 2 を使用する Datadog Agent v6 では、Snowflake チェックは利用できません。Agent v6 で Snowflake を使用するには、Datadog Agent v6 で Python 3 を使用するを参照するか、Agent v7 にアップグレードしてください。

構成

Snowflake は、`SYSADMIN` などの代替ロールにアクセス許可を付与することをお勧めします。詳細については、ACCOUNTADMIN ロールの制御の詳細をご覧ください。
  1. Snowflake を監視するための Datadog 固有のロールとユーザーを作成します。Snowflake で、以下を実行して、ACCOUNT_USAGE スキーマにアクセスできるカスタムロールを作成します。

    注: デフォルトでは、このインテグレーションは SNOWFLAKE データベースと ACCOUNT_USAGE スキーマを監視します。ORGANIZATION_USAGE スキーマを監視する方法については、“組織データの収集” を参照してください。 このデータベースはデフォルトで使用でき、表示できるのは ACCOUNTADMIN ロールまたは ACCOUNTADMIN によって付与されたロールのユーザーのみです。

text<br>use role ACCOUNTADMIN;<br>grant imported privileges on database snowflake to role SYSADMIN;<br>use role SYSADMIN;<br>
別の方法として、ACCOUNT_USAGE にアクセスできる DATADOG カスタムロールを作成することができます。
```text
– 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>;
```”

  1. Snowflake のパフォーマンスデータの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーの snowflake.d/conf.yaml ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル 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.
  2. Agent を再起動します

組織データの収集

デフォルトでは、このインテグレーションは 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_SYSADMINDATADOG_USER という 2 つのユーザーのデータを収集する必要がある場合:

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_hostproxy_portproxy_userproxy_password を設定することもできます。

: Snowflake は、プロキシコンフィギュレーションを自動的にフォーマットし、標準プロキシ環境変数を設定します。 これらの変数は、Docker、ECS、Kubernetes などのオーケストレーターを含むインテグレーションからのすべてのリクエストにも影響を与えます。

Snowflake 構成へのプライベート接続

Snowflake でプライベート接続 (AWS PrivateLink など) が有効な場合、account 構成オプションを以下の形式に更新することで Snowflake とのインテグレーションを構成することが可能です。

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

Snowflake カスタムクエリ

Snowflake インテグレーションは、カスタムクエリに対応しています。デフォルトで、インテグレーションは共有 SNOWFLAKE データベースと ACCOUNT_USAGE スキーマに接続します。

カスタムクエリを別のスキーマまたはデータベースで実行するには、別のインスタンスをサンプル snowflake.d/conf.yaml に追加して database および schema オプションを指定します。 ユーザーとロールには、指定したデータベースまたはスキーマへのアクセス権があることを確認します。

コンフィギュレーションオプション

custom_queries には以下のオプションがあります。

オプション必須説明
クエリはい実行する SQL です。簡単なステートメントにすることも、複数行のスクリプトにすることもできます。結果のすべての行が評価されます。複数行のスクリプトが必要な場合は、パイプを使用します。
はい列を表すリストです。左から右へ順に並べられます。

次の 2 つの必須データがあります。
- name: サフィックスとして metric_prefix に付加され、完全な名前を形成します。typetag と指定されている場合、この列は、このクエリによって収集されるすべてのメトリクスにタグとして適用されます。
- type: 送信方法 (gaugecountrate など)。tag と設定し、この列のアイテムの名前と値 (<name>:<row_value>) で行の各メトリクスにタグ付けすることができます。
usage-metering-get-hourly-usage-for-lambda-traced-invocationsいいえ各メトリクスに適用する静的タグのリスト。
  • 定義済みの columns のうち最低 1 つは、メトリクスタイプ (gaugecountrate など) である必要があります。
  • 列内のアイテム数は、クエリで返された列数と同じである必要があります。
  • 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 メトリクスの概要

検証

Agent の status サブコマンドを実行し、Checks セクションで snowflake を探します。

収集データ

: デフォルトでは、以下のメトリクスグループのメトリクスのみが有効になっています。snowflake.query.*snowflake.billing.*snowflake.storage.*snowflake.logins.*

他のメトリクスグループのメトリクスを収集する場合は、でこのインテグレーションのコンフィグファイル例を参照してください。

メトリクス

イベント

Snowflake には、イベントは含まれません。

サービスのチェック

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。

その他の参考資料

お役に立つドキュメント、リンクや記事:

PREVIEWING: may/embedded-workflows