datadog-dashboard-deployer


Namedatadog-dashboard-deployer JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/fleXRPL/datadog-dashboard-deployer
SummaryA framework for deploying DataDog dashboards as code
upload_time2025-02-10 23:04:01
maintainerNone
docs_urlNone
authorfleXRPL
requires_python>=3.9
licenseNone
keywords datadog dashboard monitoring devops automation
VCS
bugtrack_url
requirements datadog PyYAML click jsonschema
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

[![PyPI version](https://badge.fury.io/py/datadog-dashboard-deployer.svg)](https://badge.fury.io/py/datadog-dashboard-deployer)
[![PyPI version](https://img.shields.io/pypi/v/datadog-dashboard-deployer.svg)](https://pypi.org/project/datadog-dashboard-deployer/)
[![Python](https://img.shields.io/pypi/pyversions/datadog-dashboard-deployer.svg)](https://pypi.org/project/datadog-dashboard-deployer/)

#### health

[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[![Overall Coverage](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=coverage)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)
[![Dependabot Status](https://img.shields.io/badge/Dependabot-enabled-success.svg)](https://github.com/fleXRPL/datadog-dashboard-deployer/blob/main/.github/dependabot.yml)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

#### stats

[![Downloads](https://pepy.tech/badge/datadog-dashboard-deployer)](https://pepy.tech/project/datadog-dashboard-deployer)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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[![PyPI version](https://badge.fury.io/py/datadog-dashboard-deployer.svg)](https://badge.fury.io/py/datadog-dashboard-deployer)\n[![PyPI version](https://img.shields.io/pypi/v/datadog-dashboard-deployer.svg)](https://pypi.org/project/datadog-dashboard-deployer/)\n[![Python](https://img.shields.io/pypi/pyversions/datadog-dashboard-deployer.svg)](https://pypi.org/project/datadog-dashboard-deployer/)\n\n#### health\n\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[![Overall Coverage](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=coverage)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=fleXRPL_datadog-dashboard-deployer&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=fleXRPL_datadog-dashboard-deployer)\n[![Dependabot Status](https://img.shields.io/badge/Dependabot-enabled-success.svg)](https://github.com/fleXRPL/datadog-dashboard-deployer/blob/main/.github/dependabot.yml)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n#### stats\n\n[![Downloads](https://pepy.tech/badge/datadog-dashboard-deployer)](https://pepy.tech/project/datadog-dashboard-deployer)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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"
}
        
Elapsed time: 1.27244s