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.4.0.tar.gz (287.6 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.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: checkup_dbt-0.4.0.tar.gz
  • Upload date:
  • Size: 287.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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.0.tar.gz
Algorithm Hash digest
SHA256 4e0830e9a772bca79962a385f2aa2cbc535012a461dd7800c06f5a0751574de5
MD5 990598f30e21ba4c7211071ae929153f
BLAKE2b-256 27be3187aa34b3c99a169390f1b0dfd9bc2ac38566cfd6d7f285dd0c028f0a0f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: checkup_dbt-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24beb00d04aed34b15542a03f0dff18239e69b8df47de87fecd637bae5b47032
MD5 3784122bc3a242a7a497ab1be2cf81c4
BLAKE2b-256 b6e317f1d54f8523b0ff4c45ac01b7fa92fc9651b56fe7926703b7c54a3da611

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