Kibana(二):服务器端解码解读

服务器端的入口为src\server\kbn_server.js,这也是系统启动的核心,这里采用了mixin方式,代码结构虽然清晰,但是代码分布在各处,配置信息的传递十分复杂,其关键代码如下:

this.ready = constant(this.mixin(
    configSetupMixin,
    httpMixin,
    loggingMixin,
    warningsMixin,
    statusMixin
    //  还有很多项,在此不一一列举
    ));

追溯上面的mixin,我们可以看出,Kibana采用的WEB框架为hapi.js,其相关的配置信息尽在src\server\http\index.js中。

1. 进入调试模式

直接运行kibana,会进入生产模式,要进入调试模式,可采用–dev参数,如下:

#   请务必加上--no-base-path配置,能减少很多出错信息
.\bin\kibana.bat --dev --no-base-path

2 静态文件路由配置

在这里,同样可以添加自己需要的静态资源,可参照如下的代码格式。

//  ui/public的绝对位置为src\ui\public
server.exposeStaticDir('/ui/fonts/{path*}', resolve(__dirname, '../../ui/public/assets/fonts'));
server.exposeStaticDir('/ui/favicons/{path*}', resolve(__dirname, '../../ui/public/assets/favicons'));

3 插件扫描范围

默认的插件扫描地址有两个,分别为:
1. 系统根目录下plugins文件夹,从外部安装的插件都放入此目录下,比如官方强烈推荐sense;
2. src/core_plugins目录,系统内置的插件尽放入此处,自己定制开发的插件推荐放于此处。

4 插件注册机制

这是Kibana的核心机制,所有的视图与功能都是基于插件模式,kibnana也是其中的一个插件,包含了dashboard、discover、visualize等五个模块,其中links信息用于左侧菜单信息,uiExports属性用于注册插件信息,如下:

//  以下源代码引用至src\core_plugins\kibana\index.js
uiExports: {
      hacks: ['plugins/kibana/dev_tools/hacks/hide_empty_tools'],
      //    用于初始化UiApp
      app: {
        id: 'kibana',
        title: 'Kibana',
        listed: false,
        description: 'the kibana you know and love',
        main: 'plugins/kibana/kibana',
        uses: [
          'visTypes',
          'spyModes',
          'fieldFormats',
          'navbarExtensions',
          'managementSections',
          'devTools',
          'docViews'
        ]
}

结论

只有理解了Kibana的插件机制,才能理解Kibana源代码的层次结构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值