Можно ли добавить инструментальную панель со сценарием в список домашних информационных панелей?

Я создал инструментальную панель со сценарием для Grafana v2.1.2 и хотел бы добавить ее в список домашней панели, однако не вижу способа сделать это с помощью настроек панели инструментов графического интерфейса.

Является ли это возможным? И если да, то есть ли документация или пример того, как это сделать?


person Alan    schedule 27.08.2015    source источник
comment
вы ищете что-то похожее на grafana.wikimedia.org?   -  person Anatoly    schedule 07.09.2015
comment
Это похоже на полностью настраиваемую панель инструментов. Мне было интересно, как просто добавить мой скрипт панели мониторинга в список панелей мониторинга по умолчанию на домашней странице.   -  person Alan    schedule 08.09.2015


Ответы (2)


Похоже, это давняя проблема с grafana, и она не поддерживается, как указано на https://github.com/grafana/grafana/issues/4145

Но, к счастью, есть обходной путь, описанный на https://github.com/anryko/grafana-influx-dashboard/issues/54

Вам нужно будет создать новую панель управления Grafana. В настройках дашборда вы должны переименовать его в "Scripted Dashboard". Затем добавьте «текстовую» строку типа «html». Затем в текстовое поле этой строки вам нужно вставить этот код:

<meta http-equiv="refresh" content="1;url=/dashboard/script/getdash.js">
<script type="text/javascript">window.location.href = "/dashboard/script/getdash.js"</script>

После этого вам нужно будет сохранить приборную панель. Вот и все. Теперь на главном экране Grafana вы можете выбрать недавно созданную «Панель инструментов со сценарием», и она автоматически перенаправит вас на реальную панель управления GetDash.

В Grafana 4 вы добавляете текстовую панель в строку и переключаете режим с Markup на HTML, а затем вставляете фрагмент выше.

Недостатком этого решения является то, что такие информационные панели нельзя использовать в плейлистах (будут перенаправлены из URL-адреса плейлиста).

Будьте осторожны с URL-адресом (особенно если вы запускаете grafana по пути /grafana), так как эту панель перенаправления нельзя удалить из веб-интерфейса, вам нужно будет использовать API для этого или (как указано в предыдущем вопросе)

Создайте новый с тем же именем. Затем при сохранении действия он позволит вам перезаписать старый.

Обновление: Grafana 6 больше не позволяет обходной путь :(

person VasekCh    schedule 12.10.2017

Да, это возможно. Но нет прямого способа реализовать эту функцию. Grafana позволяет API информационных панелей создавать или обновлять информационные панели. Вам необходимо изменить объект панели инструментов скрипта по умолчанию, чтобы адаптировать его к API панели мониторинга, а также к панелям панели сценариев.

Ниже приведена инструментальная панель со сценарием по умолчанию:

'use strict';
var window, document, ARGS, $, jQuery, moment, kbn;
var dashboard = {
  rows : [],
};
dashboard.title = 'Scripted Dashboard';
dashboard.time = {
  from: "now-6h",
  to: "now"
};

dashboard.rows.push({
    title: 'Chart',
    height: '300px',
    panels: [
      {
        title: 'Events',
        type: 'graph'
      }]
  });


return dashboard;

Модифицированный скрипт для достижения цели:

'use strict' ;
var window, document, ARGS, $, jQuery, moment, kbn;
var ScriptedDashboard= {
        dashboard :{},
        overwrite: true
};

/* Create a simple dashboard*/
function createDashboard(dashboard){
        dashboard.title = 'Grafana Dashboard';
        dashboard.time = {
                from : "now-6h",
                to : "now"
        };
        dashboard.id= null;
        dashboard.uid= null;
}

function sendHTTPData(method, url, data){
    var httpRequest = new XMLHttpRequest();
    httpRequest.open( method,url , true);
    httpRequest.setRequestHeader("Content-Type", "application/json");
    httpRequest.setRequestHeader("Access-Control-Allow-Origin","*");
    var reqData = JSON.stringify(data);
    httpRequest.send(reqData);
}

createDashboard(ScriptedDashboard.dashboard);
sendHTTPData("POST", "http://192.168.0.104:3000/api/dashboards/db", ScriptedDashboard);

return ScriptedDashboard.dashboard;

Посмотрите разницу между инструментальными панелями, созданными по сценарию выше.

person RaselAshraf    schedule 17.03.2020