MongoDB Charts находится только в бета-версии.
Он предназначен для MongoDB Atlas, и в соответствии с официальной страницей «Совместное использование информационных панелей и совместной работы» вы можете обмениваться информационными панелями и диаграммами, добавляя новых пользователей и предоставляя им разрешения в представлении панели мониторинга «Доступ».
В представлении «Доступ» вы можете сделать свою панель полностью открытой, выбрав опцию «Все» и выбрать права доступа или просто поделиться с определенными пользователями.
В качестве хака, если вы хотите преобразовать свою панель мониторинга в формат JSON и перенести из одного экземпляра диаграмм MongoDB в другой, вы можете попробовать базу данных mongodump "metadata" в экземпляре MongoDB, подключенном к диаграммам MongoDB.
Имеет 4 коллекции:
- Щитки
- * 1016 источники данных *
- товар
- Пользователи
Но все отношения устанавливаются с помощью идентификаторов GUID, поэтому без ручного редактирования вы можете легко повредить данные во время хранения в хранилище.
UPDATE:
Следующий скрипт bash показывает, как экспортировать панель мониторинга и диаграмму для переноса данных в другой экземпляр MongoDB Charts:
# Your Dashboard and Chart names you want to export
dashboard_name="My Dashboard"
chart_name="My Chart"
# Exporting to `tmp` folder data from dashboard collection
mongodump --db metadata --collection dashboards --query "{"title": '$dashboard_name'}" --out "/tmp/"
dashboard_id=$(mongo --quiet --eval "db.getSiblingDB('metadata').dashboards.findOne({'title': '$dashboard_name'}, {'id': 1})['_id']")
# Exporting to `tmp` folder data from items collection
mongodump --db metadata --collection items --query "{\$and: [{'title': '$chart_name'}, {'dashboardId': '$dashboard_id'}]}" --out "/tmp/"
# After the following data is restored to different MongoDB Charts instance
# you need to make sure to modify the following records in imported data
# according to your datasource in new MongoDB Charts instance.
# for dashboards collection modify GUID for the following fields according to new datasource:
mongo --quiet --eval "db.getSiblingDB('metadata').dashboards.findOne({'title': '$dashboard_name'}, {'owners': 1, 'tenantId': 1, 'itemSummary.dataSourceId': 1})"
# for items collection modify GUID for the following fields according to new datasource:
mongo --quiet --eval "db.getSiblingDB('metadata').items.findOne({\$and: [{'title': '$chart_name'}, {'dashboardId': '$dashboard_id'}]}, {'dataSourceId': 1, 'tenantId': 1})"
Помните, что этот подход не является официальным, и возможно испортить ваши данные.