Skip to content

Instantly share code, notes, and snippets.

@ckolos
Created December 21, 2016 18:18
Show Gist options
  • Save ckolos/0def2a23423e8eb25d3760ad27a0f2c7 to your computer and use it in GitHub Desktop.
Save ckolos/0def2a23423e8eb25d3760ad27a0f2c7 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python2
from datadog import initialize
from datadog import api
from sys import argv
import os, json
DD_API_KEY = os.getenv('DD_API_KEY')
DD_APP_KEY = os.getenv('DD_APP_KEY')
options = {
'api_key': DD_API_KEY,
'app_key': DD_APP_KEY
}
initialize(**options)
try:
(script, tb) = argv
except:
tb = raw_input("Enter a timeboard: ")
print json.dumps((api.Timeboard.get(tb)), sort_keys=True, indent=4)
@ckolos
Copy link
Author

ckolos commented Dec 21, 2016

#!/usr/bin/python2

from __future__ import print_function
from datadog import initialize, api
from sys import argv,exit
import argparse, os, json, logging

parser = argparse.ArgumentParser(
        description='Create a dashboard on dd from a local json file')
parser.add_argument('--title', '-t', type=str, required=True,
                    default=False, help='Title of dashboard to be created')
parser.add_argument('--desc', '-d', type=str, required=True,
                    default=False, help='Dashboard description')
parser.add_argument('--source', '-s', required=True,
                    default=False, help='Source file to be used')
args = parser.parse_args()

logging.basicConfig()

log = logging.getLogger('dd.datadogpy')

try:
    DD_API_KEY = os.getenv('DD_API_KEY')
    DD_APP_KEY = os.getenv('DD_APP_KEY')
except:
    log.error('API_KEY and APP_KEY are not set')

options = {
        'api_key': DD_API_KEY,
        'app_key': DD_APP_KEY
}

initialize(**options)

try:
    datain = open(args.source, "r")
except:
    print("Couldn't open %s", datain)
    exit()

try:
    dashboard_def = json.load(datain)
except:
    print("Couldn't load %s into json", args.source)
    exit()

dashboard_title = args.title
dashboard_description = args.desc
dashboard_template_variables = [
            {
                "default": "env:stage",
                "name": "Env",
                "prefix": "env"
            }
        ]

api.Timeboard.create(
                      title=dashboard_title,
                      description=dashboard_description,
                      graphs=dashboard_def['dash']['graphs'],
                      template_variables=dashboard_template_variables
                    )

You may want to adjust the template vars. Or not. Your call.

<script> --title title --desc description --source source.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment