Skip to content

Instantly share code, notes, and snippets.

@mvintila
Created September 2, 2014 13:12
Show Gist options
  • Save mvintila/70141f7afdb2887a2186 to your computer and use it in GitHub Desktop.
Save mvintila/70141f7afdb2887a2186 to your computer and use it in GitHub Desktop.
Grafana dashboard generator
#!/usr/bin/python
import json
import sys
import re
import copy
prefix = 'servers'
names = sys.argv[2:]
file = open(sys.argv[1], 'r')
dash = json.load(file)
initial_row = dash['rows'][0]
rows = []
dash['rows'] = rows
for name in names:
row = copy.deepcopy(initial_row)
for panel in row['panels']:
for target in panel['targets']:
target['target'] = re.sub('%s\.[a-zA-Z0-9-_]+\.' % prefix, '%s.%s.' % (prefix, name), target['target'])
panel['title'] = name
rows.append(row)
print json.dumps(dash, sort_keys=True, indent=4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment