You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kibana 6.1.1自定义可视化插件报错:无法读取'group'属性

排查Kibana 6.1.1自定义可视化插件"cannot read property 'group' of undefined"错误

嘿,我之前开发Kibana 6.x自定义可视化插件时也踩过这个坑,这个错误大概率是可视化类型注册环节的配置缺失导致的,咱们一步步来排查:

1. 先检查插件的核心配置文件kibana.json

Kibana 6.x要求所有插件根目录下必须有这个配置文件,用来识别插件的基本信息,如果缺失或配置不全,会导致插件加载异常,间接引发这个错误。你需要确保文件存在且包含以下关键内容:

{
  "id": "morta-custom-vis",
  "version": "6.1.1",
  "kibanaVersion": "6.1.1",
  "name": "Morta Hello World Visualization",
  "description": "A simple static content visualization",
  "type": "plugin"
}
  • 注意kibanaVersion必须和你的Kibana版本完全一致(6.1.1),否则插件会被拒绝加载。

2. 重点检查可视化注册代码(你的morta.js)

这个错误最直接的原因就是注册可视化类型时漏掉了group字段。Kibana需要用这个字段把你的可视化归类到对应的分组(比如"Basic"、"Data"),如果没有这个字段,渲染可视化选择界面时就会读取到undefined的group属性。

正确的注册代码应该包含group字段,示例如下:

import { VisTypesRegistryProvider } from 'ui/registry/vis_types';
import MortaVisController from './controllers/morta_vis_controller';
import MortaVisTemplate from './templates/morta_vis.html';
import MortaVisOptionsTemplate from './templates/morta_vis_options.html';

VisTypesRegistryProvider.register(() => ({
  name: 'morta-vis',
  title: 'Morta Hello World',
  icon: 'fa-smile-o',
  description: 'Displays a simple hello world message',
  // 必须指定分组,比如放到基础分组里
  group: 'basic',
  visualization: MortaVisController,
  visConfig: {
    defaults: {
      displayText: "hello world"
    },
    template: MortaVisTemplate
  },
  editorConfig: {
    optionsTemplate: MortaVisOptionsTemplate
  },
  // 因为是静态展示,不需要搜索数据源,设置为false
  requiresSearch: false,
}));
  • 确认你的morta.js里有没有这个group字段,这是解决问题的关键。

3. 验证控制器与模板的正确性

控制器代码示例:

确保控制器正确注入依赖并绑定数据,比如:

import { uiModules } from 'ui/modules';
const module = uiModules.get('app/morta-custom-vis');

module.controller('MortaVisController', function ($scope) {
  // 从可视化配置中获取文本,默认显示hello world
  $scope.displayText = $scope.vis.params.displayText || "hello world";
});
  • 如果控制器加载失败,会导致可视化类型注册不完整,也可能引发类似错误。

模板文件示例:

主模板(morta_vis.html)保持简洁:

<div class="morta-vis-wrapper">
  <h3>{{displayText}}</h3>
</div>

选项模板(morta_vis_options.html)如果不需要复杂配置,可简化为:

<div class="form-group">
  <label>Custom Display Text</label>
  <input type="text" ng-model="vis.params.displayText" class="form-control">
</div>
  • 确保模板文件的路径和你在注册代码中导入的路径完全一致。

4. 最后验证插件加载状态

  • 启动Kibana时,查看控制台日志,确认有没有类似Plugin morta-custom-vis@6.1.1 loaded的输出,如果没有,说明插件没有被正确识别,检查插件是否放在Kibana的plugins目录下,或者用--plugin-path参数指定插件路径。
  • 清理Kibana的缓存:删除Kibana安装目录下的optimize文件夹,然后重启Kibana,避免旧缓存导致的代码异常。

按照上面的步骤排查,尤其是检查group字段的存在性,应该就能解决这个错误啦!

内容的提问来源于stack exchange,提问作者Morta1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:51:41