Kibana 6.1.1自定义插件(可视化)

时间:2018-01-19 08:51:29

标签: angularjs elasticsearch visualization kibana

我对Kibana很新,我正在尝试创建自己的可视化自定义插件(适用于kibana 6.1.1)。

那一刻我只想在屏幕上看到“hello world”或其他内容。

首先,这是我的文件夹结构:

.
├── package.json
├── public
|   ├── mainTemplate.html
|   ├── optionTemplate.html
|   ├── mortaController.js
|   └── morta.js
├── index.js

这是morta.js看起来像:

import 'plugins/morta/mortaController';
//core methods
import {CATEGORY} from 'ui/vis/vis_category';
import {VisFactoryProvider} from 'ui/vis/vis_factory';
import {VisSchemasProvider} from 'ui/vis/editors/default/schemas';
import {VisTypesRegistryProvider} from 'ui/registry/vis_types';
//templates
import mainTemplate from 'plugins/morta/mainTemplate.html';
import optionTemplate from 'plugins/morta/optionTemplate.html';

VisTypesRegistryProvider.register(MortaProvider);

function MortaProvider(Private) {
    const VisFactory = Private(VisFactoryProvider);
    const Schemas = Private(VisSchemasProvider);

    return VisFactory.createAngularVisualization({
        name: "morta",
        title: "Morta Vis",
        icon: "fa-terminal",
        description: "Morta visualization",
        category: CATEGORY.BASIC,
        visConfig: {
            defaults: {},
            template: mainTemplate
        },
        editorConfig: {
            optionsTemplate: optionTemplate,
            schemas: new Schemas([{
                group: 'metrics',
                name: 'test_metrics',
                title: "Testing metrics",
                min: 1,
                max: 1,
                aggFilter: ['count', 'avg', 'sum', 'min', 'max', 'cardinality', 'std_dev'],
                defaults: [
                    {schema: 'metric', type: 'count'}
                ]
            }])
        }
    });
}

export default MortaProvider;

这是我的控制者:

import { uiModules } from 'ui/modules';

const module = uiModules.get('morta', ['kibana']);

module.controller('MortaController', mortaController);

mortaController.$inject = ['$scope'];

function mortaController($scope){
    let vm = this;
}

这是mainTemplate:

<div data-ng-controller="MortaController as vm">
    <h1>Morta Visualize View</h1>
</div>

这是optionTemplate:

<p>Test Options</p>

我已经启动并运行了我的kibana和elasticsearch服务器,然后我尝试使用我的自定义插件创建一个新的可视化,但我收到一条错误消息:

  

“可视化:无法读取未定义的属性'组'

我不确定我是否遗漏了某些内容或做错了什么,如果您需要我提供的更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

更改名称并强制刷新后,可能会在创建可视化屏幕中发生这种情况。

name: 'test_metrics',

退出“创建可视化”屏幕,例如点击“可视化”标签,然后点击“ +”创建可视化按钮以返回到您所在的位置

这对我有用(在6.3.2版上)