A DAG cost tracking plugin for Apache Airflow
Project description
💰 DAG Cost Tracker
DAG Cost Tracker is a powerful observability and FinOps tool designed for Apache Airflow. It tracks execution time and compute resource usage to provide granular cost estimates for individual DAG runs, helping engineering teams optimize their data pipeline spending.
🚀 Features
- Granular Cost Tracking: Track costs at the DAG and task level.
- Customizable Pricing: Configure warehouse rates (e.g., Snowflake credits) to match your contract.
- CLI Reporting: Generate beautiful cost reports and inspect expensive DAGs from your terminal.
- Seamless Integration: Plugs directly into Airflow task hooks—no DAG code changes required.
- Lightweight: Stores cost history in a local SQLite database (zero external infrastructure dependencies).
📦 Installation
Install easily via pip:
pip install dag-cost-tracker
⚙️ Configuration
-
Create Config File: Create a
config.yamlat~/.dag_cost_tracker/config.yamlto define your compute pricing.warehouses: COMPUTE_WH_SMALL: credits_per_hour: 1 cost_per_credit: 3.00 COMPUTE_WH_LARGE: credits_per_hour: 4 cost_per_credit: 3.00
-
Enable Plugin: The plugin auto-registers with Airflow upon installation. Restart your Airflow Scheduler and Webserver to start tracking.
📊 Usage
Generate a Cost Report
See your most expensive DAGs at a glance:
dag-cost report --top 10 --period 30d
Output:
+-------------------+--------+--------------+----------------+
| DAG ID | Runs | Total Cost | Avg Cost/Run |
+===================+========+==============+================+
| etl_daily | 7 | $148.66 | $21.24 |
+-------------------+--------+--------------+----------------+
| ml_training | 7 | $115.77 | $16.54 |
+-------------------+--------+--------------+----------------+
Inspect a Specific DAG
Drill down to find which tasks are driving up costs:
dag-cost inspect etl_daily
🛠️ Development
- Clone the repository.
- Install dependencies:
pip install -e . - Run tests:
pytest
👤 Author
Azmat Siddique
If you found this tool useful, consider buying me a coffee!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 dag_cost_tracker-0.1.3-py3-none-any.whl.
File metadata
- Download URL: dag_cost_tracker-0.1.3-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f1ecf16e26e49e9adbd3b6815764f2b957fb42c3f03cff13842e1da2d87b418
|
|
| MD5 |
9c8febb079ca2d93401fdb2402aa4697
|
|
| BLAKE2b-256 |
f9f402ec35d794b060e36756e2f17fde1a41151747689fb364c34d9deb2d69a7
|