你能在多个grafana脚本仪表板之间共享代码吗?

问题描述 投票:1回答:1

我为Grafana创建了几个脚本化仪表板。我即将创造另一个。我创建了各种实用程序函数,并从脚本复制到脚本。我宁愿采用良好的编程习惯并导入代码而不是复制粘贴。

可以这样做吗?如果是这样,怎么会这样做?

javascript grafana
1个回答
1
投票

是的,这可以做到。 This link建议可以使用SystemJS.import(),虽然我没有尝试过。

This github repo使用不同的技术提供了一个详细的例子。虽然在slim Grafana scripted dashboard doc中没有提及,但是某些版本的lodash.com(commit to include lodash)和jquery似乎可用于所有脚本化仪表板。

这个repo的所有者anryko已经找到了如何使用这两个库来引用你自己的实用程序脚本,就像你正在谈论的那样。

所有脚本化仪表板都有一个主脚本; getdash.sh是anryko的主要脚本,如README.md上的破折号URL所示:

http://grafanaIP/dashboard/script/getdash.js

如果你看一下getdash.sh的结尾,你会看到这行引用了其他用户(你)提供的脚本中的代码:

var dash = getDashApp(datasources, getDashConf());

例如:

以下是getdash.js使用jquery和lodash加载源文件的部分:

// loadScripts :: [scriptSourceStr] -> Promise([jQuery.getScript Result])
var loadScripts = function loadScripts (scriptSrcs) {
  var gettingScripts = _.map(scriptSrcs, function (src) {
    return $.getScript(src);
  });

  return Promise.all(gettingScripts);
};

这是上面的_.map的lodash文档。

函数scriptedDashboard()(也在getdash.js中)调用上面的loadScripts(),传递给源文件的路径,如下所示:

loadScripts([
      'public/app/getdash/getdash.app.js',
      'public/app/getdash/getdash.conf.js'
    ]).then(function () {

说实话,我还没有进一步深入研究,看看这一切是如何使实用程序代码“可参考”的。

© www.soinside.com 2019 - 2024. All rights reserved.