Este producto no es compatible con el sitio Datadog seleccionado. ().

Descripción general

Datadog puede acceder a los metadatos de su dbt Cloud o dbt Core para extraer información sobre las ejecuciones de trabajos, incluidas las duraciones de ejecución, los modelos generados por dbt y las relaciones de linaje entre modelos. Datadog compara la tabla de su almacén de datos con los modelos de dbt para determinar la causalidad y las consecuencias de un error en la tabla.

Siga los pasos a continuación para conectar dbt Cloud a Datadog.

Genere un token de API en dbt Cloud

Cree un token de servicio en dbt Cloud para que Datadog pueda acceder a los metadatos de su cuenta.

  1. En dbt Cloud, vaya a User Profile > API Tokens > Service Tokens.
  2. Haga clic en + Create Service Token.
  3. Proporcione un nombre para el token.
  4. Establezca los permisos del token:
    • Si crea el webhook en dbt Cloud usted mismo, utilice el conjunto de permisos Stakeholder/Read-Only limitado a los proyectos de dbt Cloud relevantes.
    • Si Datadog crea y administra el webhook, utilice permisos Developer para el plan dbt Cloud Enterprise o permisos Account Admin para el plan dbt Cloud Team.
  5. Haga clic en Save y copie el token de API generado.

Conecte su cuenta de dbt Cloud a Datadog

Utilice el token de API para configurar la integración en Data Observability.

  1. Navegue a Datadog Data Observability > Settings.
  2. En la sección dbt Cloud, haga clic en Configure.
  3. Si ya ha creado una cuenta de integración de dbt Cloud, asegúrese de haberla actualizado con el token de API con los permisos descritos anteriormente.
  4. Si no, cree una cuenta. Complete las secciones Account Name, Account Id, Account Url y API Token.
  5. Haga clic en Save para guardar su configuración.

Configure webhooks

En la configuración de Data Observability, expanda la cuenta de dbt Cloud y elija cómo Datadog recibe los eventos de ejecución de trabajos de dbt Cloud.

Cree el webhook en dbt Cloud usted mismo

Utilice esta opción si desea usar un token de servicio Stakeholder/Read-Only para la ingesta de artefactos.

  1. Seleccione I’ll manage the webhook in dbt Cloud myself.
  2. Copie la URL del webhook de Datadog.
  3. En dbt Cloud, vaya a Account Settings > Webhooks > Create New Webhook.
  4. Pegue la URL del webhook de Datadog en el campo de URL del webhook.
  5. Habilite los eventos Job Run Started y Job Run Completed. Para contextualizar la ingesta a trabajos específicos, seleccione esos trabajos en la configuración del webhook de dbt Cloud.
  6. Guarde el webhook en dbt Cloud.
  7. Copie el secreto HMAC de dbt Cloud, péguelo en el campo HMAC secret from dbt Cloud en Datadog y haga clic en Save.

Nota: Después de guardar, los webhooks que usted mismo cree pueden tardar hasta 5 minutos en comenzar a aceptar tráfico de dbt Cloud.

Si elimina una configuración de webhook administrada por el usuario en Datadog más adelante, elimine el webhook de dbt Cloud manualmente.

Permita que Datadog administre el webhook

Utilice esta opción si desea que Datadog cree y mantenga el webhook en dbt Cloud.

  1. Seleccione Datadog-managed.
  2. Haga clic en Save.

Este modo requiere un token de dbt Cloud con permisos de Developer para el plan dbt Cloud Enterprise o permisos de Account Admin para el plan dbt Cloud Team.

¿Qué sigue?

Después de su próxima ejecución de trabajo de dbt, debería comenzar a ver los datos de ejecución de trabajo y linaje en Datadog Data Observability, como se muestra a continuación.

Descripción general de Data Observability que muestra las ejecuciones de trabajo de dbt como un gráfico de barras apiladas a lo largo del tiempo y una tabla de cuentas de dbt Cloud conectadas con su estado.

Siga los pasos a continuación para conectar dbt Core a Datadog.

Nota: Si ejecuta dbt Core con un orquestador externo (como Airflow) y desea correlacionar las tareas del orquestador con las ejecuciones de dbt, siga primero las instrucciones de integración de Airflow.

Obtenga su clave de Datadog API

  1. Siga estas instrucciones para crear u obtener una clave de Datadog API.

Instale openlineage-dbt

  1. Instale el paquete openlineage-dbt. Consulte Uso de dbt con Amazon MWAA para configurar este paquete en su entorno virtual.

    pip3 install openlineage-dbt>=1.39.0
    

Establezca las variables de entorno

  1. Establezca las siguientes variables de entorno. Reemplace datadoghq.com con el sitio de Datadog correspondiente para su organización. Para obtener más información sobre los sitios de Datadog predefinidos, consulte la documentación de 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
    

    Para las verificaciones de CI/CD, el número de solicitud de extracción se detecta automáticamente cuando la ejecución expone GITHUB_REF (flujos de trabajo de GitHub Actions activados por una solicitud de extracción) o CI_MERGE_REQUEST_IID (canalizaciones de solicitud de fusión de GitLab). Si ninguna de las variables está presente, establezca el número de solicitud de extracción explícitamente:

    export OPENLINEAGE__FACETS__SOURCE_CODE_LOCATION__PULL_REQUEST_NUMBER=<PR_NUMBER>
    

    Si su trabajo de CI se ejecuta dentro de un contenedor que no hereda el contexto git del runner (por ejemplo, un flujo de trabajo de GitHub Actions que inicia un contenedor), la URL del repositorio, el SHA del commit y el número de solicitud de extracción no se detectan automáticamente, por lo que debe pasar los tres explícitamente. Consulte Ejecución de su trabajo de CI de dbt Core en un contenedor.

Actualice la invocación de dbt

  1. Cambie sus invocaciones de dbt para utilizar el wrapper de OpenLineage (dbt-ol) en lugar de llamar a dbt directamente. Esto se aplica a cualquier comando de dbt que desee rastrear en Datadog, como run, build y test. Para obtener la lista completa de comandos disponibles, consulte la documentación de dbt.

  2. Agregue la marca --consume-structured-logs para visualizar los trabajos de dbt mientras el comando aún se está ejecutando.

    # 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>
    

¿Qué sigue?

Después de la siguiente ejecución de su trabajo de dbt, debería comenzar a ver los datos de ejecución del trabajo y de linaje en Datadog Data Observability, como se muestra a continuación.

Descripción general de Data Observability que muestra las ejecuciones de trabajos de dbt y el linaje de modelos.

Lecturas adicionales