Как скопировать панель управления в другие организации в Графане

Я использую Графану, чтобы показать некоторые данные. У меня 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)
Другие вопросы по тегам