# 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
[](https://badge.fury.io/py/datadog-dashboard-deployer)
[](https://pypi.org/project/datadog-dashboard-deployer/)
[](https://pypi.org/project/datadog-dashboard-deployer/)
#### health
[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[](https://github.com/fleXRPL/datadog-dashboard-deployer/blob/main/.github/dependabot.yml)
[](https://github.com/psf/black)
#### stats
[](https://pepy.tech/project/datadog-dashboard-deployer)
[](https://opensource.org/licenses/MIT)
## 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
```bash
pip install datadog-dashboard-deployer
```
### Basic Usage
1. Set up your DataDog credentials:
```bash
export DATADOG_API_KEY='your-api-key'
export DATADOG_APP_KEY='your-application-key'
```
2. Create a dashboard configuration:
```yaml
# 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{*}"
```
3. Deploy your dashboard:
```bash
datadog-dashboard-deploy config/dashboard_config.yaml
```
## Project Structure
```bash
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
- [Getting Started Guide](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Getting-Started)
- [Configuration Guide](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Configuration-Guide)
- [API Reference](https://datadog-dashboard-deployer.readthedocs.io/)
- [Examples](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Examples)
## GitHub Actions Integration
1. Add DataDog credentials as secrets:
- Go to repository Settings > Secrets and Variables > Actions
- Add `DATADOG_API_KEY` and `DATADOG_APP_KEY`
2. Create a workflow file:
```yaml
# .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](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Contributing) for details.
### Development Setup
1. Clone the repository:
```bash
git clone https://github.com/fleXRPL/datadog-dashboard-deployer.git
cd datadog-dashboard-deployer
```
2. Create and activate a virtual environment:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. Install development dependencies:
```bash
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](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Security) for details
## Support
- [GitHub Issues](https://github.com/fleXRPL/datadog-dashboard-deployer/issues) for bug reports and feature requests
- [GitHub Discussions](https://github.com/fleXRPL/datadog-dashboard-deployer/discussions) for questions and community support
- [Stack Overflow](https://stackoverflow.com/questions/tagged/datadog-dashboard-deployer) using the `datadog-dashboard-deployer` tag
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- [DataDog](https://www.datadoghq.com/) for their excellent monitoring platform
- [datadogpy](https://github.com/DataDog/datadogpy) for the official Python client
- All our [contributors](https://github.com/fleXRPL/datadog-dashboard-deployer/graphs/contributors)
Raw data
{
"_id": null,
"home_page": "https://github.com/fleXRPL/datadog-dashboard-deployer",
"name": "datadog-dashboard-deployer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "datadog dashboard monitoring devops automation",
"author": "fleXRPL",
"author_email": "support@flexrpl.com",
"download_url": "https://files.pythonhosted.org/packages/f4/aa/627561099fdb4c7bfb15fc2c303c13d0c503349191d66bdd27ccdd0d683d/datadog_dashboard_deployer-0.1.0.tar.gz",
"platform": null,
"description": "# DataDog Dashboard Deployer\n\nA powerful framework for deploying DataDog dashboards as code using CI/CD pipelines. Define, version, and automate your DataDog dashboard deployments using YAML configurations.\n\n#### versions\n\n[](https://badge.fury.io/py/datadog-dashboard-deployer)\n[](https://pypi.org/project/datadog-dashboard-deployer/)\n[](https://pypi.org/project/datadog-dashboard-deployer/)\n\n#### health\n\n[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[](https://github.com/fleXRPL/datadog-dashboard-deployer/blob/main/.github/dependabot.yml)\n[](https://github.com/psf/black)\n\n#### stats\n\n[](https://pepy.tech/project/datadog-dashboard-deployer)\n[](https://opensource.org/licenses/MIT)\n\n## Features\n\n- \ud83d\ude80 **Configuration as Code**: Define dashboards using YAML configuration files\n- \ud83d\udd04 **Automated Deployment**: Deploy dashboards automatically via GitHub Actions\n- \ud83d\udcca **Rich Widget Support**: Support for timeseries, query values, heatmaps, and more\n- \ud83d\udd10 **Secure Credentials**: Handle DataDog API credentials securely\n- \ud83c\udfa8 **Templating Support**: Create dynamic dashboards using Jinja2 templating\n- \ud83d\udd0c **Extensible Architecture**: Easy to extend and customize\n\n## Quick Start\n\n### Installation\n\n```bash\npip install datadog-dashboard-deployer\n```\n\n### Basic Usage\n\n1. Set up your DataDog credentials:\n\n```bash\nexport DATADOG_API_KEY='your-api-key'\nexport DATADOG_APP_KEY='your-application-key'\n```\n\n2. Create a dashboard configuration:\n\n```yaml\n# config/dashboard_config.yaml\nversion: \"1.0\"\ndashboards:\n - name: \"System Overview\"\n description: \"System performance metrics\"\n widgets:\n - title: \"CPU Usage\"\n type: \"timeseries\"\n query: \"avg:system.cpu.user{*}\"\n - title: \"Memory Usage\"\n type: \"timeseries\"\n query: \"avg:system.mem.used{*}\"\n```\n\n3. Deploy your dashboard:\n\n```bash\ndatadog-dashboard-deploy config/dashboard_config.yaml\n```\n\n## Project Structure\n\n```bash\ndatadog-dashboard-deployer/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 datadog_dashboard_deployer/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 core.py # Core logic for dashboard creation\n\u2502 \u251c\u2500\u2500 config.py # Configuration handling\n\u2502 \u2514\u2500\u2500 utils.py # Utility functions\n\u251c\u2500\u2500 config/\n\u2502 \u2514\u2500\u2500 dashboard_config.yaml # Main dashboard configuration\n\u251c\u2500\u2500 .github/\n\u2502 \u2514\u2500\u2500 workflows/\n\u2502 \u2514\u2500\u2500 deploy.yml # GitHub Actions workflow\n\u251c\u2500\u2500 tests/ # Test suite\n\u251c\u2500\u2500 docs/ # Documentation\n\u251c\u2500\u2500 requirements.txt # Project dependencies\n\u251c\u2500\u2500 setup.py # Package configuration\n\u2514\u2500\u2500 README.md\n```\n\n## Documentation\n\n- [Getting Started Guide](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Getting-Started)\n- [Configuration Guide](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Configuration-Guide)\n- [API Reference](https://datadog-dashboard-deployer.readthedocs.io/)\n- [Examples](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Examples)\n\n## GitHub Actions Integration\n\n1. Add DataDog credentials as secrets:\n\n - Go to repository Settings > Secrets and Variables > Actions\n - Add `DATADOG_API_KEY` and `DATADOG_APP_KEY`\n\n2. Create a workflow file:\n\n```yaml\n# .github/workflows/deploy.yml\nname: Deploy Dashboards\non:\n push:\n branches: [main]\n workflow_dispatch:\n\njobs:\n deploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v2\n - name: Set up Python\n uses: actions/setup-python@v2\n with:\n python-version: \"3.x\"\n - name: Deploy dashboards\n env:\n DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}\n DATADOG_APP_KEY: ${{ secrets.DATADOG_APP_KEY }}\n run: |\n pip install datadog-dashboard-deployer\n datadog-dashboard-deploy config/dashboard_config.yaml\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Contributing) for details.\n\n### Development Setup\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/fleXRPL/datadog-dashboard-deployer.git\ncd datadog-dashboard-deployer\n```\n\n2. Create and activate a virtual environment:\n\n```bash\npython -m venv venv\nsource venv/bin/activate # On Windows: venv\\Scripts\\activate\n```\n\n3. Install development dependencies:\n\n```bash\npip install -r requirements-dev.txt\n```\n\n## Security\n\n- API keys are stored securely as environment variables or GitHub secrets\n- Regular security audits and dependency updates\n- See our [Security Policy](https://github.com/fleXRPL/datadog-dashboard-deployer/wiki/Security) for details\n\n## Support\n\n- [GitHub Issues](https://github.com/fleXRPL/datadog-dashboard-deployer/issues) for bug reports and feature requests\n- [GitHub Discussions](https://github.com/fleXRPL/datadog-dashboard-deployer/discussions) for questions and community support\n- [Stack Overflow](https://stackoverflow.com/questions/tagged/datadog-dashboard-deployer) using the `datadog-dashboard-deployer` tag\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- [DataDog](https://www.datadoghq.com/) for their excellent monitoring platform\n- [datadogpy](https://github.com/DataDog/datadogpy) for the official Python client\n- All our [contributors](https://github.com/fleXRPL/datadog-dashboard-deployer/graphs/contributors)\n",
"bugtrack_url": null,
"license": null,
"summary": "A framework for deploying DataDog dashboards as code",
"version": "0.1.0",
"project_urls": {
"Documentation": "https://github.com/fleXRPL/datadog-dashboard-deployer/wiki",
"Homepage": "https://github.com/fleXRPL/datadog-dashboard-deployer",
"Issues": "https://github.com/fleXRPL/datadog-dashboard-deployer/issues",
"Source": "https://github.com/fleXRPL/datadog-dashboard-deployer"
},
"split_keywords": [
"datadog",
"dashboard",
"monitoring",
"devops",
"automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7d68f4386e68cec6417898b19db247c62f217bb7f2dc9af246c4cc680d61e5db",
"md5": "c1d7fd0a7722cc7f191fe2ccfa204038",
"sha256": "1c59f58901d8dfa9c1817ed6dd39a3bbee5945f55c6b1eb2060244e90b70e7b0"
},
"downloads": -1,
"filename": "datadog_dashboard_deployer-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c1d7fd0a7722cc7f191fe2ccfa204038",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 10592,
"upload_time": "2025-02-10T23:03:59",
"upload_time_iso_8601": "2025-02-10T23:03:59.203585Z",
"url": "https://files.pythonhosted.org/packages/7d/68/f4386e68cec6417898b19db247c62f217bb7f2dc9af246c4cc680d61e5db/datadog_dashboard_deployer-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f4aa627561099fdb4c7bfb15fc2c303c13d0c503349191d66bdd27ccdd0d683d",
"md5": "afc704c37bcc86f5ae122ed99bbfe228",
"sha256": "381dae1150a435b1d8dbe519e931b2f01dfe4860c565d09d8ffde618887f4d55"
},
"downloads": -1,
"filename": "datadog_dashboard_deployer-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "afc704c37bcc86f5ae122ed99bbfe228",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 13740,
"upload_time": "2025-02-10T23:04:01",
"upload_time_iso_8601": "2025-02-10T23:04:01.553623Z",
"url": "https://files.pythonhosted.org/packages/f4/aa/627561099fdb4c7bfb15fc2c303c13d0c503349191d66bdd27ccdd0d683d/datadog_dashboard_deployer-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-10 23:04:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fleXRPL",
"github_project": "datadog-dashboard-deployer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "datadog",
"specs": [
[
">=",
"0.44.0"
]
]
},
{
"name": "PyYAML",
"specs": [
[
">=",
"6.0"
]
]
},
{
"name": "click",
"specs": [
[
">=",
"8.0.0"
]
]
},
{
"name": "jsonschema",
"specs": [
[
">=",
"4.0.0"
]
]
}
],
"lcname": "datadog-dashboard-deployer"
}