Skip to main content

A tool for exporting (or importing) Datadog dashboards to (or from) json

Project description

Build Status

dashjson.py -- a Datadog tool

A tool for exporting (or importing) Datadog dashboards to (or from) json. It allows the Datadog dashboard definitions to be

  • version controlled as json files, and
  • migrated across Datadog accounts

Tested with Python 3.6.7 and datadog 0.26.0.

How to use

Create the credentials file containing the api_key and the app_key. Example content of the credentials file (your keys can be found at https://app.datadoghq.com/account/settings#api):

# cat ~/.dashjson.json
{
    "api_key": "abcdefg12345678",
    "app_key": "abcdefg987654321"
}

Install via pip:

python3 -m pip install --user dashjson

Show usage of the tool:

python3 -m dashjson -h

How to build (for contributors only)

These are the steps I used on Ubuntu 18.04.

Add the following lines to ~/.bashrc:

# Due to https://github.com/pypa/pipenv/issues/2122
export PATH="${HOME}/.local/bin:$PATH"

# Due to https://github.com/pypa/pipenv/issues/1382
export PIPENV_VENV_IN_PROJECT=true

Install pip and pipenv:

sudo apt install python3-pip
python3 -m pip install --user pipenv

Clone and set up the project locally:

git clone git@github.com:ouyi/dashjson.git
cd dashjson
pipenv install --dev
pipenv run python -m unittest
pipenv run python dashjson.py -h

Upload a release:

rm -rf build/ dist/
python setup.py sdist bdist_wheel
pip install . -vvv
python -m dashjson -h
vim setup.py # bump version
git add setup.py && git commit -m "Bump version"
git tag -a my_tag -m "My message"
git push origin master && git push origin --tags
python -m twine upload dist/*

TODOs

  1. Automatically determine the dashboard type

For import, the information is available in the input file. For export, we can first get a list of all screenboards and then check existence by id.

  1. Embed a code coverage badge

The coverage data can be generated with:

coverage run --source=dashjson -m unittest && coverage report && coverage-badge -f -o coverage.svg
  1. Automate the release process

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

dashjson-0.1.5.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

dashjson-0.1.5-py3-none-any.whl (4.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page