Suivez les étapes ci-dessous pour connecter dbt Cloud à Datadog.
Générez un jeton API dans dbt Cloud
Créez un jeton de service dans dbt Cloud afin que Datadog puisse accéder aux métadonnées de votre compte.
- Dans dbt Cloud, accédez à User Profile > API Tokens > Service Tokens.
- Cliquez sur + Create Service Token.
- Donnez un nom au jeton.
- Définissez les autorisations du jeton :
- Si vous créez vous-même le webhook dans dbt Cloud, utilisez l’ensemble d’autorisations Stakeholder/Read-Only limité aux projets dbt Cloud concernés.
- Si Datadog crée et gère le webhook, utilisez les autorisations Developer pour le plan dbt Cloud Enterprise ou les autorisations Account Admin pour le plan dbt Cloud Team.
- Cliquez sur Save et copiez le jeton API généré.
Connectez votre compte dbt Cloud à Datadog
Utilisez le jeton API pour configurer l’intégration dans Data Observability.
- Accédez à Datadog Data Observability > Settings.
- Dans la section dbt Cloud, cliquez sur Configure.
- Si vous avez déjà créé un compte d’intégration dbt Cloud, assurez-vous de l’avoir mis à jour avec le jeton d’API disposant des autorisations décrites ci-dessus.
- Sinon, créez un compte. Remplissez les sections Account Name, Account Id, Account Url et API Token.
- Cliquez sur Save pour enregistrer vos paramètres.
Dans les paramètres de Data Observability, développez le compte dbt Cloud et choisissez la manière dont Datadog reçoit les événements d’exécution de job dbt Cloud.
Créez vous-même le webhook dans dbt Cloud
Utilisez cette option si vous souhaitez utiliser un jeton de service Stakeholder/Read-Only pour l’ingestion d’artefacts.
- Sélectionnez I’ll manage the webhook in dbt Cloud myself.
- Copiez l’URL du webhook Datadog.
- Dans dbt Cloud, accédez à Account Settings > Webhooks > Create New Webhook.
- Collez l’URL du webhook Datadog dans le champ URL du webhook.
- Activez les événements Job Run Started et Job Run Completed. Pour étendre l’ingestion à des jobs spécifiques, sélectionnez ces jobs dans la configuration du webhook de dbt Cloud.
- Enregistrez le webhook dans dbt Cloud.
- Copiez le secret HMAC depuis dbt Cloud, collez-le dans le champ HMAC secret from dbt Cloud dans Datadog, puis cliquez sur Save.
Remarque : Après l’enregistrement, les webhooks que vous créez vous-même peuvent mettre jusqu’à 5 minutes avant de commencer à accepter le trafic provenant de dbt Cloud.
Si vous supprimez ultérieurement une configuration de webhook gérée par l’utilisateur dans Datadog, supprimez manuellement le webhook de dbt Cloud.
Laissez Datadog gérer le webhook
Utilisez cette option si vous souhaitez que Datadog crée et maintienne le webhook dans dbt Cloud.
- Sélectionnez Datadog-managed.
- Cliquez sur Save.
Ce mode nécessite un jeton dbt Cloud avec des autorisations Developer pour le plan dbt Cloud Enterprise ou des autorisations Account Admin pour le plan dbt Cloud Team.
Prochaines étapes
Après votre prochaine exécution de job dbt, vous devriez commencer à voir les données d’exécution de job et de lignage dans Datadog Data Observability, comme illustré ci-dessous.
Suivez les étapes ci-dessous pour connecter dbt Core à Datadog.
Remarque : Si vous exécutez dbt Core avec un orchestrateur externe (tel qu’Airflow) et que vous souhaitez corréler les tâches de l’orchestrateur avec les exécutions dbt, suivez d’abord les instructions d’intégration Airflow.
Récupérez votre clé Datadog API
- Suivez ces instructions pour créer ou récupérer une clé Datadog API.
Installez openlineage-dbt
Installez le package openlineage-dbt. Consultez Utilisation de dbt avec Amazon MWAA pour configurer ce package dans votre environnement virtuel.
pip3 install openlineage-dbt>=1.39.0
Définissez les variables d’environnement
Définissez les variables d’environnement suivantes. Remplacez datadoghq.com par le site Datadog correspondant à votre organisation. Pour plus d’informations sur les sites Datadog prédéfinis, consultez la documentation 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
Pour les vérifications CI/CD, le numéro de pull request est détecté automatiquement lorsque l’exécution expose GITHUB_REF (workflows GitHub Actions déclenchés par une pull request) ou CI_MERGE_REQUEST_IID (pipelines de merge request GitLab). Si aucune de ces variables n’est présente, définissez explicitement le numéro de pull request :
export OPENLINEAGE__FACETS__SOURCE_CODE_LOCATION__PULL_REQUEST_NUMBER=<PR_NUMBER>
Si votre job CI s’exécute dans un conteneur qui n’hérite pas du contexte git du runner (par exemple, un workflow GitHub Actions lançant un conteneur), l’URL du dépôt, le SHA du commit et le numéro de pull request ne sont pas détectés automatiquement ; vous devez donc transmettre les trois explicitement. Consultez Exécution de votre job CI dbt Core dans un conteneur.
Mettez à jour l’appel dbt
Modifiez vos appels dbt pour utiliser le wrapper OpenLineage (dbt-ol) au lieu d’appeler dbt directement. Cela s’applique à toute commande dbt que vous souhaitez suivre dans Datadog, telle que run, build et test. Pour la liste complète des commandes disponibles, consultez la documentation dbt.
Ajoutez l’indicateur --consume-structured-logs pour afficher les jobs dbt pendant que la commande est encore en cours d’exécution.
# 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>
Quelle est la prochaine étape
Après votre prochaine exécution de job dbt, vous devriez commencer à voir les données d’exécution de job et de lignage dans Datadog Data Observability, comme illustré ci-dessous.