Skip to main content

dbt metrics for checkup

Project description

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

Project details


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.3.0.tar.gz (288.0 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.3.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: checkup_dbt-0.3.0.tar.gz
  • Upload date:
  • Size: 288.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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.3.0.tar.gz
Algorithm Hash digest
SHA256 6ae3e54090bb7c21116a70cf85de4c7eb53807c2f237ccd024bb4fd592d66391
MD5 f2c584ac8a15156814e3e5e8278fa0f9
BLAKE2b-256 0fc87047b04816e484a61594164c34c89640a89abd94d37f8df92fb69a7c319c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: checkup_dbt-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9bbb8e27f412e8dbbccaaffabca68c77a4f52a446246993607a3de6e7b492c6
MD5 22b9114001b6256f356d048730dc4faf
BLAKE2b-256 ef0163af06d4787635695d9ef1ddd45a040011b769edb9911b9e94c7c62a9c62

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 Pingdom Monitoring Sentry Error logging StatusPage Status page