javascript - 您可以在多个 grafana 脚本化仪表板之间共享代码吗?

标签 javascript grafana

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

这可以吗?如果是的话,该怎么做呢?

最佳答案

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

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

此存储库的所有者 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);
};

这是上述内容的 lodash 文档 _.map .

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

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

说实话,我还没有进一步深入了解这一切如何使实用程序代码“可引用”。

关于javascript - 您可以在多个 grafana 脚本化仪表板之间共享代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786850/

相关文章:

influxdb - DB 文件夹占用大量空间,造成空间问题

javascript - 谷歌图片搜索鼠标悬停,它们是如何工作的?

javascript - 从 JS 日期对象获取 YYYYMMDD 格式的字符串?

mysql - Grafana使用mysql数据库做图报错1064

Grafana重命名查询结果

oauth - 当grafana位于应用程序负载均衡器后面时,如何配置grafana以使用Oauth2?

javascript - 响应式设计将带有 css 类的 html div 内容切换到 div

javascript - JS-用随机单引号解析数据

javascript - Three.js setHSL() 是否已被弃用?

正则表达式 根据父捕获组提取捕获组