DataDog Dashboard Deployer
A powerful framework for deploying DataDog dashboards as code using CI/CD pipelines. Define, version, and automate your DataDog dashboard deployments using YAML configurations.
versions
health
stats
Features
- 🚀 Configuration as Code: Define dashboards using YAML configuration files
- 🔄 Automated Deployment: Deploy dashboards automatically via GitHub Actions
- 📊 Rich Widget Support: Support for timeseries, query values, heatmaps, and more
- 🔐 Secure Credentials: Handle DataDog API credentials securely
- 🎨 Templating Support: Create dynamic dashboards using Jinja2 templating
- 🔌 Extensible Architecture: Easy to extend and customize
Quick Start
Installation
pip install datadog-dashboard-deployer
Basic Usage
- Set up your DataDog credentials:
export DATADOG_API_KEY='your-api-key'
export DATADOG_APP_KEY='your-application-key'
- Create a dashboard configuration:
# config/dashboard_config.yaml
version: "1.0"
dashboards:
- name: "System Overview"
description: "System performance metrics"
widgets:
- title: "CPU Usage"
type: "timeseries"
query: "avg:system.cpu.user{*}"
- title: "Memory Usage"
type: "timeseries"
query: "avg:system.mem.used{*}"
- Deploy your dashboard:
datadog-dashboard-deploy config/dashboard_config.yaml
Project Structure
datadog-dashboard-deployer/
├── src/
│ └── datadog_dashboard_deployer/
│ ├── __init__.py
│ ├── core.py # Core logic for dashboard creation
│ ├── config.py # Configuration handling
│ └── utils.py # Utility functions
├── config/
│ └── dashboard_config.yaml # Main dashboard configuration
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions workflow
├── tests/ # Test suite
├── docs/ # Documentation
├── requirements.txt # Project dependencies
├── setup.py # Package configuration
└── README.md
Documentation
GitHub Actions Integration
-
Add DataDog credentials as secrets:
- Go to repository Settings > Secrets and Variables > Actions
- Add
DATADOG_API_KEYandDATADOG_APP_KEY
-
Create a workflow file:
# .github/workflows/deploy.yml
name: Deploy Dashboards
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.x"
- name: Deploy dashboards
env:
DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}
DATADOG_APP_KEY: ${{ secrets.DATADOG_APP_KEY }}
run: |
pip install datadog-dashboard-deployer
datadog-dashboard-deploy config/dashboard_config.yaml
Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Clone the repository:
git clone https://github.com/fleXRPL/datadog-dashboard-deployer.git
cd datadog-dashboard-deployer
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install development dependencies:
pip install -r requirements-dev.txt
Security
- API keys are stored securely as environment variables or GitHub secrets
- Regular security audits and dependency updates
- See our Security Policy for details
Support
- GitHub Issues for bug reports and feature requests
- GitHub Discussions for questions and community support
- Stack Overflow using the
datadog-dashboard-deployertag
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- DataDog for their excellent monitoring platform
- datadogpy for the official Python client
- All our contributors
Metadata
Release files for datadog-dashboard-deployer 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| datadog_dashboard_deployer-0.1.0.tar.gz | 13.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| datadog_dashboard_deployer-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.3 kB
Release files / datadog_dashboard_deployer-0.1.0.tar.gz
| Download URL | datadog_dashboard_deployer-0.1.0.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
381dae1150a435b1d8dbe519e931b2f01dfe4860c565d09d8ffde618887f4d55
|
|
BLAKE2b-256 checksum How to use checksums |
f4aa627561099fdb4c7bfb15fc2c303c13d0c503349191d66bdd27ccdd0d683d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 10, 2025.
Transparency logRelease files / datadog_dashboard_deployer-0.1.0-py3-none-any.whl
| Download URL | datadog_dashboard_deployer-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c59f58901d8dfa9c1817ed6dd39a3bbee5945f55c6b1eb2060244e90b70e7b0
|
|
BLAKE2b-256 checksum How to use checksums |
7d68f4386e68cec6417898b19db247c62f217bb7f2dc9af246c4cc680d61e5db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 10, 2025.
Transparency log