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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41291368bcc1a4e5659d865442f0a6ebcdd9956833cd921101f638fe22070fb6
|
|
| MD5 |
040c1341321912b5c0cf7dbf76e8217e
|
|
| BLAKE2b-256 |
0f4def5ab234a56b1fb9775f1908b49078521ad7f0eb83f55e5be59dbec59f67
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
689948c027a6facc187f4dcf4f5a9ce4f50a8fc870d3b8a059f36dea61b786e2
|
|
| MD5 |
785bb0cdbc4b5bf24261b11cf32a47d0
|
|
| BLAKE2b-256 |
17a1f7c0ee8a775ee28f66c8e401c824deef37e6167f67e21d8b4000ecfadb16
|