我正在构建一个 Kibana 插件,它将代表用户查询 Elasticsearch。官方文档说我可以使用 kibana
模块中的 es
服务。
uiModules
.get('app/demo', ['kibana'])
.controller('demoController', function ($scope, esAdmin, es) {
es.ping()
.then(() => esAdmin.ping())
.catch(err => {
console.log('error pinging servers');
});
});
但是,该插件无法启动并显示以下错误:
Error: [$injector:unpr] Unknown provider: esAdminProvider <- esAdmin <- demoController
似乎es
服务未注册到kibana
模块。
然后我尝试复制控制台的工作方式。它不使用Elasticsearch服务,而是在服务器上创建一个代理API。但是,我不知道控制台如何使用用户的身份验证信息调用代理 API。
我的想法快用完了。提前感谢您有关如何从插件查询 Elasticsearch 的任何帮助。
使用 esResponse,看看 Tim roes kibana 插件教程
您必须将 elasticsearch 模块添加到模块的需求中。尝试:
uiModules
.get('app/demo', ['kibana', 'elasicsearch'])
.controller('demoController', function ($scope, esAdmin, es) {
es.ping()
.then(() => esAdmin.ping())
.catch(err => {
console.log('error pinging servers');
});
});
值得注意的是,这似乎适用于可视化而不是黑客。es和esAdmin的功能似乎受到限制。如果你需要进行他们不支持的 elasticsearch 调用,你必须创建一个自定义的服务器端点,并从那里使用 elasticsearch。