美好的一天。我是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插件?
答案 0 :(得分:0)
我不知道您是否真的需要使用插件来解决此问题,因为我找不到关于您从问题中的任何数据源进行数据检索的任何提及。另外,我对Grafana插件的开发还不太熟悉,但是我能够解决一个与JavaScript相关的问题,而无需编写插件。
我做了什么:我以Text
模式在仪表板上放置了html
元素,并插入了<script>...</script>
部分和一些HTML代码。这一直有效,直到我将Grafana更新为较新的版本为止,出于安全原因,他们开始阻止该版本。在/etc/grafana/grafana.ini
部分中配置disable_sanitize_html = true
设置[panels]
之后,我使它再次起作用。您也可以这样做,但是请记住,这存在安全风险,因为仪表板现在允许注入任何类型的恶意JavaScript代码。
See also this Grafana reference page for scripted dashboards。