以下の手順に従って、dbt Cloud を Datadog に接続します。
dbt Cloud で API トークンを生成する
Datadog がアカウントのメタデータにアクセスできるように dbt Cloud でサービストークンを作成します。
- dbt Cloud で、User Profile > API Tokens > Service Tokens に移動します。
- + Create Service Token をクリックします。
- トークンに名前を設定します。
- トークンの権限を設定します。
- dbt Cloud で Webhook を自分で作成する場合は、関連する dbt Cloud プロジェクトにスコープ設定された Stakeholder/Read-Only 権限セットを使用します。
- Datadog が Webhook を作成および管理する場合は、dbt Cloud Enterprise プランには Developer 権限を、dbt Cloud Team プランには Account Admin 権限を使用します。
- Save をクリックし、生成された API トークンをコピーします。
dbt Cloud アカウントを Datadog に接続する
API トークンを使用して、Data Observability で統合を構成します。
- Datadog Data Observability > Settings に移動します。
- dbt Cloud セクションで、Configure をクリックします。
- すでに dbt Cloud 統合アカウントを作成済みの場合は、前述の権限を持つ API トークンで更新されていることを確認してください。
- まだ作成していない場合は、アカウントを作成します。Account Name、Account Id、Account Url、および API Token セクションに入力します。
- Save をクリックして設定を保存します。
Data Observability 設定で、dbt Cloud アカウントを展開し、Datadog が dbt Cloud ジョブ実行イベントを受信する方法を選択します。
dbt Cloud で Webhook を自分で作成する
アーティファクトのインジェストに Stakeholder/Read-Only サービストークンを使用する場合は、このオプションを使用します。
- I’ll manage the webhook in dbt Cloud myself を選択します。
- Datadog の Webhook URL をコピーします。
- dbt Cloud で、Account Settings > Webhooks > Create New Webhook に移動します。
- Datadog の Webhook URL を Webhook URL フィールドに貼り付けます。
- Job Run Started および Job Run Completed イベントを有効にします。インジェストを特定のジョブに限定するには、dbt Cloud の Webhook 設定でそれらのジョブを選択します。
- dbt Cloud で Webhook を保存します。
- dbt Cloud から HMAC シークレットをコピーし、Datadog の HMAC secret from dbt Cloud フィールドに貼り付けて、Save をクリックします。
注: 保存後、自分で作成した Webhook が dbt Cloud からのトラフィックを受け入れ始めるまでに最大 5 分かかる場合があります。
後で Datadog のユーザー管理 Webhook 設定を削除する場合は、dbt Cloud から手動で Webhook を削除してください。
Datadog に Webhook を管理させる
Datadog に dbt Cloud の Webhook を作成および管理させたい場合は、このオプションを使用します。
- Datadog-managed を選択します。
- Save をクリックします。
このモードでは、dbt Cloud Enterprise プランには Developer 権限を、dbt Cloud Team プランには Account Admin 権限を持つ dbt Cloud トークンが必要です。
次のステップ
次回の dbt ジョブ実行後、以下に示すように、Datadog Data Observability でジョブ実行データとリネージデータの確認を開始できるはずです。
以下の手順に従って、dbt Core を Datadog に接続します。
注: 外部オーケストレーター (Airflow など) で dbt Core を実行しており、オーケストレーターのタスクと dbt の実行を関連付けたい場合は、まず Airflow インテグレーションの手順 に従ってください。
Datadog API キーを取得する
- こちらの指示に従って、Datadog API キーを作成または取得します。
openlineage-dbt をインストールする
openlineage-dbt パッケージをインストールします。このパッケージを仮想環境にセットアップするには、Amazon MWAA で dbt を使用する を参照してください。
pip3 install openlineage-dbt>=1.39.0
環境変数を設定する
以下の環境変数を設定します。datadoghq.com を組織の該当する Datadog サイト に置き換えます。定義済みの Datadog サイトの詳細については、OpenLineage ドキュメント を参照してください。
export DD_SITE=datadoghq.com
export DD_API_KEY=<YOUR_DATADOG_API_KEY>
export OPENLINEAGE__TRANSPORT__TYPE=datadog
# OPENLINEAGE_NAMESPACE determines the Datadog tag value for the environment (similar to how the service tag identifies the application).
# Typical values are dev, staging, or prod, but you can over ride it with any custom value.
export OPENLINEAGE_NAMESPACE=<YOUR_ENV>
# Optional, for debugging purposes
export OPENLINEAGE_CLIENT_LOGGING=DEBUG
# Required for CI/CD Drift Detection (requires openlineage-dbt >= 1.46.0).
# Attaches the sourceCodeLocation facet (repository URL, commit SHA, and pull
# request number) so Datadog can associate the dbt run with a pull request.
# Disabled by default; not required for job monitoring alone.
export OPENLINEAGE__FACETS__SOURCE_CODE_LOCATION__DISABLED=false
CI/CD チェック の場合、実行時に GITHUB_REF (プルリクエストによってトリガーされる GitHub Actions ワークフロー) または CI_MERGE_REQUEST_IID (GitLab マージリクエストパイプライン) が公開されると、プルリクエスト番号が自動的に検出されます。どちらの変数も存在しない場合は、プルリクエスト番号を明示的に設定します。
export OPENLINEAGE__FACETS__SOURCE_CODE_LOCATION__PULL_REQUEST_NUMBER=<PR_NUMBER>
CI ジョブがランナーの git コンテキストを継承しないコンテナ内で実行される場合 (例: コンテナを起動する GitHub Actions ワークフロー)、リポジトリ URL、コミット SHA、プルリクエスト番号は自動的に検出されないため、これら 3 つすべてを明示的に渡す必要があります。コンテナ内での dbt Core CI ジョブを実行するを参照してください。
dbt 呼び出しを更新する
dbt 呼び出しを変更し、dbt を直接呼び出す代わりに OpenLineage ラッパー (dbt-ol) を使用します。これは、run、build、test など、Datadog で追跡したいすべての dbt コマンドに適用されます。利用可能なコマンドの全リストについては、dbt ドキュメント を参照してください。
--consume-structured-logs フラグを追加して、コマンドの実行中に dbt ジョブを表示します。
# Run models
dbt-ol run --consume-structured-logs --openlineage-dbt-job-name <YOUR_DBT_JOB_NAME>
# Run tests (required to see test failures in Datadog)
dbt-ol test --consume-structured-logs --openlineage-dbt-job-name <YOUR_DBT_JOB_NAME>
# Run build (runs models, tests, seeds, and snapshots)
dbt-ol build --consume-structured-logs --openlineage-dbt-job-name <YOUR_DBT_JOB_NAME>
次のステップ
次回の dbt ジョブ実行後、以下に示すように、Datadog Data Observability でジョブ実行データとリネージデータの確認を開始できるはずです。