Как скопировать панель управления в другие организации в Графане
Я использую Графану, чтобы показать некоторые данные. У меня 20 организаций, и все они используют одни и те же информационные панели (Dash1, Dash2, Dash3). Таким образом, я могу использовать одни и те же данные json для всех информационных панелей во всех организациях.
Но я не хочу обновлять его вручную каждый раз, когда я что-то меняю, поэтому я пытаюсь создать скрипт на python, который сделает это за меня.
Я запускаю скрипт следующим образом:
python update_dashboards.py Dash1
Код Python выглядит следующим образом:
try:
dashboard_name = sys.argv[1]
response = settings.get_request_with_token(settings.api_url + "search?query=" + dashboard_name)
dashboard = json.loads(response)
if len(dashboard) < 1:
print("There is no dashboard data.")
else:
dashboard_data = dashboard[0]
dashboard_uri = str(dashboard_data["uri"])
dashboard_data = dashboard_api.get_dashboard(dashboard_uri)
// Here I get dashboard details
except IndexError:
print("Please provide dashboard name!")
Таким образом, я даю название информационной панели, которую хочу скопировать во все организации.
С моим кодом я успешно получаю панель инструментов, которую хочу скопировать.
У меня вопрос: как теперь я могу использовать эту панель, чтобы скопировать ее во все другие организации?
1 ответ
Я думаю, использовать API для создания новых панелей. Вы можете использовать запросы и создавать полезную нагрузку с тем, что у вас уже есть в вашем скрипте. Вам также нужен ключ для использования API.
payload = {"authorization": "yourkey", "content": thedashboard}
url = yougrafanaaddress/api/dashboards/db
r = requests.post(url, data=payload)