kibana插件框架介绍
kibana插件的一般目录结构如下:
myPlugin/
--public/
--index.js
--package.json
其中package.json文件指定插件name以及version。插件的根目录名称即为插件名称,所以这里的name需要和根目录名称保持一致,在上述目录结构插件的名称便为myPlugin。version还不太清楚是kibana的版本号,还是我们自定义一个插件的版本号,而kibana自身的插件中一般都定义为kibana,且自己开发的插件中定义为kibana也没任何问题。package.json中的内容一般如下
{ "name": "myPlugin", "version": "kibana" }
index.js文件也是插件中一个必要文件,其为插件的默认入口文件,当然也可在package.json文件中另指定插件的入口文件,如何指定还需要去了解。在该文件中我们通过如下形式去实例化一个kibana plugin对象
module.exports = function(kibana){ return new kibana.Plugin({ //your plugin configuration }); };
在kibana插件系统中,这是我们开发一个插件时的固定写法,这里的function可以理解为我们插件的一个入口方法,相当于c、c++中的main方法。在//your plugin configuration 处给要实例化的kibana plugin对象传入初始值,kibana plugin对象常见需要初始化的成员变量有
uiExports:通过uiExports去向我们的插件注册一个模块,该模块有visType、app等类型,当然也可以注册多个。这里的模块具体为一个js文件,且固定放在public目录下。
require:引入uiExports注册的模块所需要的依赖,一般有kibana和elasticsearch
config:这是在kibana代码里面看到的,具体如何使用还需要了解
init:同上
其中uiExports是最重要的一个成员变量,必须被初始化。插件可以只初始化uiExports。以下为一个最简单的实例化过程,
moeule.exports = function(kibana){ return new kibana.Plugin({ uiExports: { visTypes: ['plugins/myPlugin/tag'] } }); };
“[plugins/myPlugin/tag]”中的plugins为固定写法,myPlugin为插件名称,tag为我们通过uiExports注册的模块名称,该模块具体为在public目录下的tag.js文件,在tag.js文件中编写我们插件的主要代码。
在后面的博客中,会继续介绍具体的插件开发相关知识,敬请期待。
- 点赞
- 收藏
- 关注作者
评论(0)