The anomaly detection tests configuration is defined in .yml files in your dbt project, just like in native dbt tests.

The configuration of Elementary is dbt native and follows the same priorities and inheritance. The more granular and specific configuration overrides the less granular one.

Elementary searches and prioritizes configuration in the following order:

For models tests:

  1. Test arguments.
  2. Tests path configuration under tests key in dbt_project.yml.
  3. Model configuration.
  4. Path configuration under models key in dbt_project.yml.
  5. Global vars in dbt_project.yml.

For sources tests:

  1. Test arguments.
  2. Tests path configuration under tests key in dbt_project.yml.
  3. Table configuration.
  4. Source configuration.
  5. Global vars in dbt_project.yml.

Tests configuration params

If your data set has a timestamp column that represents the creation time of a field, it is highly recommended configuring it as a timestamp_column.

  • Params by test

  • Params by [core concept](/guides/how-anomaly-detection-works)

Example configurations

version: 2

models:
  - name: <model_name>
    config:
      elementary:
        timestamp_column: < model timestamp column >
    tests: < here you will add elementary monitors as tests >

  - name: <your model with no timestamp>
    ## if no timestamp is configured, elementary will monitor without time filtering
    tests: <here you will add elementary monitors as tests>