【问题标题】:Grafana, write a simple plugin, without using grunt or whateverGrafana,写一个简单的插件,不用 grunt 什么的
【发布时间】:2018-07-07 23:27:29
【问题描述】:

大家好。我是 Grafana 的新手,我们最近在工作中采用了它。

我愿意创建一个插件,我需要加载一个简单的外部 js 库并在 Grafana 面板中启动它,没什么特别的。

第一个问题:我不想使用任何构建库(grunt 或其他),我只想编写插件 javascript,我不想重新分发它。我在哪里写代码? 我是否可以在data/plugins/myplugin/dist/ 文件夹中编写要执行的代码? (我正在尝试按照 Grafana Docs 中的步骤进行操作,但由于他们谈论构建和安装我不喜欢使用的脚本而不清楚)。

第二个问题:好像如果我使用 dist/ 文件夹,插件就会被执行。现在,我想在其中导入一个 external.js 库,外部库将负责显示我喜欢的数据。

在我的 myplugin_ctrl.js 中我这样写:

System.register(['app/plugins/sdk', 'lodash', './css/clock-panel.css!','./libs/datamaps'], function (_export, _context) {
  var PanelCtrl, _, _createClass, panelDefaults, ClockCtrl;

您可能会注意到,我使用了用于 Grafana 操作指南的时钟插件。

我想导入'./libs/datamaps',我设法做的是在将面板添加到仪表板时出现此错误:

Plugin component error Error: Fetch error: 404 Not Found
  Instantiating http://127.0.0.1:3000/data/plugins/test-panel/libs/datamaps
  Loading http://127.0.0.1:3000/public/plugins/test-panel/clock_ctrl.js

我做错了什么? datamap.js 应该在哪里?或者如何将其导入 Grafana 插件?

【问题讨论】:

    标签: javascript plugins grafana


    【解决方案1】:

    我不知道您是否真的需要使用插件来解决这个问题,因为我在您的问题中找不到任何关于从任何数据源检索数据的内容。另外,我对 Grafana 插件开发还不是很熟悉,但我能够解决一个与 JavaScript 相关的问题,而无需编写插件。

    我做了什么:我在仪表板上以html 模式放置了一个Text 元素,并插入了一个<script>...</script> 部分以及一些HTML 代码。这一直有效,直到我将 Grafana 更新到更新的版本,由于安全原因,他们开始阻止它。在[panels] 部分配置/etc/grafana/grafana.ini 设置disable_sanitize_html = true 后,我让它再次工作。您也可以这样做,但请记住,这是一个安全风险,因为仪表板现在允许注入任何类型的恶意 JavaScript 代码。

    See also this Grafana reference page for scripted dashboards.

    【讨论】:

      猜你喜欢
      • 2017-01-14
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多