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, metrics):
        manifest = context["dbt"]["manifest"]
        self.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.2.2.tar.gz (287.4 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.2.2-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: checkup_dbt-0.2.2.tar.gz
  • Upload date:
  • Size: 287.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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.2.2.tar.gz
Algorithm Hash digest
SHA256 41291368bcc1a4e5659d865442f0a6ebcdd9956833cd921101f638fe22070fb6
MD5 040c1341321912b5c0cf7dbf76e8217e
BLAKE2b-256 0f4def5ab234a56b1fb9775f1908b49078521ad7f0eb83f55e5be59dbec59f67

See more details on using hashes here.

File details

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

File metadata

  • Download URL: checkup_dbt-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 20.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 689948c027a6facc187f4dcf4f5a9ce4f50a8fc870d3b8a059f36dea61b786e2
MD5 785bb0cdbc4b5bf24261b11cf32a47d0
BLAKE2b-256 17a1f7c0ee8a775ee28f66c8e401c824deef37e6167f67e21d8b4000ecfadb16

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