目录 | 描述 |
---|---|
dist | 存放编译打包后的插件代码 |
src | 插件源码目录 |
src/components | 界面文件, 可选 |
src/css | css样式文件 |
src/dashboard | 仪表板json文件 |
src/datasource | 数据源插件 |
src/img | 图像文件 |
src/panel | 仪表板插件 |
src/module.ts | 唯一入口文件 |
src/plugin.json | 插件描述文件 |
Gruntfile.js | Grunt任务描述 |
package.json | 依赖包说明 |
README.md | 说明文档 |
该目录下存放着对应的ts文件和html文件,定义前端的基本操作;
templateUrl
可导入HTML文件,然后该类需在module.ts
入口文件进行声明,然后在plugin.json
对页面进行对应描述即可。该目录存放一些自定义css样式;
该目录存放着插件自带的仪表板;可以通过grafana制定,然后保存生成json文件,不过应注意要把json文件中的id
项改为null
,不然会引发Import Dashboard Error
;
该目录是APP附属的数据源配置, 相当于将数据源插件嵌入到APP中;
该目录存放图像文件,比如图标;
该目录是APP附属的仪表插件, 相当于将仪表插件嵌入到APP中;待添加
必要文件, 文件内容解析如下(以kubernetes app为例):
import {KubernetesConfigCtrl} from './components/config/config';
import {ClustersCtrl} from './components/clusters/clusters';
import {loadPluginCss} from 'app/plugins/sdk';
loadPluginCss({
dark: 'plugins/grafana-kubernetes-app/css/dark.css',
light: 'plugins/grafana-kubernetes-app/css/light.css'
});
export {
KubernetesConfigCtrl as ConfigCtrl,
ClustersCtrl,
};
ConfigCtrl
是grafana在配置插件时使用的控制器,将KubernetesConfigCtrl
作为ConfigCtrl
,该页面会在插件配置的页面中显示。必要文件, 文件内容解析如下:
{
"type": "app", //声明类型:app, datasource, panel
"name": "kubernetes", //插件名称
"id": "grafana-kubernetes-app", //插件ID,必须唯一
"info": { //相关信息
"description": "Kubernetes app. shows data collected by Prometheus.",
"author": {
"name": "Grafana Labs",
"url": "https://grafana.com/"
},
"keywords": ["raintank", "kubernetes", "Prometheus"],
"logos": { //声明图标
"small": "img/logo.svg",
"large": "img/logo.svg"
},
"links": [ //链接跳转
{"name": "Grafana Labs", "url": "https://grafana.com/"},
],
"version": "1.0.1", //版本信息
"updated": "2018-01-18"
},
"includes": [ //对插件的各部分进行引入
{
"type": "page", //页面类型
"name": "Clusters", //显示的名称
"component": "ClustersCtrl", //该页面的类
"role": "Viewer", //该页面的功能
"addToNav": true, //是否加入插件导航栏
"defaultNav": true //是否作为插件使能后的默认页面
},
{
"type": "datasource", //数据源类型
"name": "kubernetes DS" //数据源名称
},
{
"type": "dashboard", //仪表板类型
"name": "K8s Node", //仪表板的名称
"path": "dashboards/k8s-node.json", //仪表板的文职
"addToNav": false
},
{
"type": "panel", //仪表类型
"name": "Kubernetes Node Info"
},
],
"dependencies": { //依赖的grafana版本以及插件
"grafanaVersion": "5.0+",
"plugins": []
}
}
Grunt任务配置文件,主要架构是引入依赖插件,定义任务信息,配置需要执行的任务;
声明该插件需要使用到的插件和依赖,便于npm安装环境;
要求Markdown格式, 可在插件配置的页面的Readme选项卡中显示;