Skip to main content

checkup-dbt

dbt metrics plugin for checkup.

Installation

pip install checkup-dbt

Requirements

  • Python >= 3.12
  • checkup
  • dbt-core >= 1.9

Usage

from checkup import CheckHub
from checkup_dbt import (
    DbtManifestProvider,
    DbtModelsMetric,
    DbtColumnsMetric,
    DbtTestsMetric,
)

results = (
    CheckHub()
    .with_metrics([
        DbtModelsMetric(),
        DbtColumnsMetric(),
        DbtTestsMetric(),
    ])
    .with_providers([[
        DbtManifestProvider(dbt_project_dir="./my_dbt_project"),
    ]])
    .measure()
)

Provider

DbtManifestProvider

Provides dbt manifest data to metrics. Can either parse a dbt project directory or load a pre-generated manifest file.

Available Metrics

Core Metrics

DbtModelsMetric

Total number of dbt models.

DbtColumnsMetric

Total number of columns across all models.

DbtTestsMetric

Total number of tests.

DbtModelsWithDescriptionMetric

Number of models that have descriptions.

DbtModelsWithoutDescriptionMetric

Number of models missing descriptions.

DbtColumnsWithDescriptionMetric

Number of columns that have descriptions.

DbtColumnsWithoutDescriptionMetric

Number of columns missing descriptions.

Test Metrics

DbtUnitTestsMetric

Number of unit tests.

DbtDataTestsMetric

Number of data tests.

DbtColumnTestsMetric

Number of column-level tests.

DbtTestedColumnsMetric

Number of columns that have at least one test.

DbtColumnTestCoverageMetric

Percentage of columns with tests.

Output Model Metrics

DbtOutputModelsMetric

Number of models exposed as outputs.

DbtOutputModelsWithDescriptionMetric

Number of output models with descriptions.

DbtOutputModelsWithoutDescriptionMetric

Number of output models missing descriptions.

DbtOutputModelsWithoutContractsMetric

Number of output models without contracts.

DbtOutputColumnsWithoutDataTypeMetric

Number of output columns without data types.

Quality Metrics

DbtModelsNotAdheringToNamingConventionMetric

Number of models not following naming conventions.

DbtVersionMetric

Current dbt version.

DbtSupportedVersionMetric

Whether dbt version is supported. Configure by subclassing:

from checkup_dbt import DbtSupportedVersionMetric

class MySupportedVersionMetric(DbtSupportedVersionMetric):
    min_version = "1.9"

DbtFlaggedPackagesMetric

Packages flagged for review. Configure by subclassing:

from checkup_dbt import DbtFlaggedPackagesMetric

class MyFlaggedPackagesMetric(DbtFlaggedPackagesMetric):
    flagged_packages = [
        "https://github.com/example/deprecated-package",
    ]

DbtProfileHostMetric

Profile host configuration.

Creating Custom Metrics

Extend DbtMetric to create custom dbt-based metrics:

from checkup_dbt import DbtMetric

class MyCustomDbtMetric(DbtMetric):
    name = "my_custom_metric"
    description = "My custom dbt metric"

    def calculate(self, context, measurements):
        manifest = self.get_manifest(context)
        return self.measure(value=len(manifest.nodes))

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

checkup_dbt-0.4.1.tar.gz (287.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

checkup_dbt-0.4.1-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file checkup_dbt-0.4.1.tar.gz.

File metadata

  • Download URL: checkup_dbt-0.4.1.tar.gz
  • Upload date:
  • Size: 287.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for checkup_dbt-0.4.1.tar.gz
Algorithm Hash digest
SHA256 bbf6c340965c5f7a705d47a83c21579acfacc497de132ad20a36f71075c0abe9
MD5 c9f539dd13f0100b7e8e86743af58a46
BLAKE2b-256 a267a60563d16ce3801db3f9b89716c8a7026aac9783882224e2cbc67dedf829

See more details on using hashes here.

File details

Details for the file checkup_dbt-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: checkup_dbt-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for checkup_dbt-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f47d3494979b21352bd005f0268e2d3bfa01c47c1a3c8c54196f06e5c2852d4
MD5 89b771e3f499cd755c3295de55ee720d
BLAKE2b-256 da16c070176cd085d159ffe95517011f89597dedcf596737960fc11d90d5221f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page