Filippo Giunchedi has uploaded a new change for review. https://gerrit.wikimedia.org/r/268082
Change subject: grafana: add dashboard import tool ...................................................................... grafana: add dashboard import tool the idea is to dump dashboards from grafana into git/puppet and thus 'freeze' them Bug: T125644 Change-Id: If30f9dd06d0c3b265ed59f0f8427872fd5d2b178 --- A files/grafana/grafana-dashboard 1 file changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/82/268082/1 diff --git a/files/grafana/grafana-dashboard b/files/grafana/grafana-dashboard new file mode 100755 index 0000000..fdf0a05 --- /dev/null +++ b/files/grafana/grafana-dashboard @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +# export grafana dashboard JSON description for revision control +# pretty printing and sorting the JSON representation should minimise +# differences when code-reviewing changes + +import StringIO +import argparse +import json +import logging +import sys + +import requests + +DEFAULT_URL = 'https://grafana.wikimedia.org/api/dashboards/db/%s' + +log = logging.getLogger(__name__) + + +def dump_dashboard(url): + if not url.startswith('http'): + name = url + url = DEFAULT_URL % url + else: + name = url.split('/')[-1] + + req = requests.get(url) + req.raise_for_status() + + dashboard = req.json()['dashboard'] + + if 'source:puppet.git' not in dashboard['tags']: + dashboard['tags'].append('source:puppet.git') + + log.info('dumping %s into %s', url, name) + with open(name, 'w') as f: + json.dump(dashboard, f, sort_keys=True, + separators=(',', ': '), indent=2) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('dashboard', help='URL or dashboard name to act on', + action='append', nargs='+') + args = parser.parse_args() + + logging.basicConfig(level=logging.INFO) + + for url in args.dashboard[0]: + dump_dashboard(url) + + +if __name__ == '__main__': + sys.exit(main()) -- To view, visit https://gerrit.wikimedia.org/r/268082 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: If30f9dd06d0c3b265ed59f0f8427872fd5d2b178 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Filippo Giunchedi <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
