ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

我把 Kibana Console 的核心 DSL 能力单独剥离出来了

我把 Kibana Console 的核心 DSL 能力单独剥离出来了 我把 Kibana Console 的核心 DSL 能力单独剥离出来了很多中大型公司其实并不缺平台。真正缺的往往是一个能顺利嵌入现有平台体系里的 Elasticsearch DSL 控制台能力。最近我把一个自己实际会用到的工具开源了名字叫dsl-kibana。它做的事情很直接把 Kibana Console 中最常用、最有生产力的 DSL 能力单独剥离出来做成一个更轻量、更容易二次开发、也更适合集成到企业自有研发平台、运维平台和数据平台中的项目。项目地址https://github.com/xiaohongaiweno/dsl-kibana【为什么会做这个项目】对于很多中大型公司来说实际情况通常是这样的已经有自己的研发平台已经有自己的运维平台已经有统一登录和权限体系已经有内部前端框架和设计规范这时候如果只是为了提供一个 Elasticsearch DSL 调试能力就去整体接入完整 Kibana通常会遇到几个比较现实的问题开发和改造工作量不小只需要 DSL 控制台能力却要承担整套 Kibana 的接入复杂度整体引入的性价比不一定高还会增加权限、审计、访问控制和平台安全面的治理压力所以我最后选择的思路不是“把 Kibana 整个搬进来”而是“把真正有价值的 DSL 能力单独拿出来”。dsl-kibana就是基于这个思路做出来的。【这个项目可以做什么】我先直接说能力不绕弯子。支持多请求块编辑与执行在同一个编辑器里可以连续写多段 Elasticsearch 请求。每个请求块左侧都有独立的运行按钮可以单独执行某一块请求。这件事看起来简单但在真实调试里非常高频。因为很多时候一份文档里会保留多段常用查询模板、排障语句或者验证语句。支持 Kibana 风格自动补全项目内置了比较接近 Kibana Console 的自动补全能力覆盖HTTP 方法补全接口路径补全URL 查询参数补全URL 参数值补全JSON Body 字段补全这意味着它不是一个单纯的文本框而是一个具备真实生产力的 DSL 编写工具。支持 ES6 / ES7 / ES8 规则切换很多企业内部环境并不是单一 Elasticsearch 版本。有些系统还在旧版本有些系统已经升级到新版本接口路径和兼容规则会存在差异。dsl-kibana已经支持ES6、ES7、ES8三套规则切换这一点对实际使用很有帮助。支持直接请求本地 Elasticsearch项目默认请求http://localhost:9200启动本地 Elasticsearch 后打开页面就可以直接编写 DSL 并执行查看结果。更适合二次开发和平台集成这是这个项目最重要的价值。它不是一个封死的工具页面而是一个可以继续嵌入、继续扩展、继续改造的 DSL 能力模块。你可以把它接入到企业研发平台企业运维平台数据平台搜索团队内部工作台而不需要把完整 Kibana 整体塞进现有系统里。【为什么它更适合企业内部落地】很多团队真正需要的并不是一个完整平台而只是一个可写 DSL 的编辑器一套顺手的自动补全一个请求执行入口一个结果展示区域如果为了这些能力整体接入 Kibana往往意味着更高的改造成本和更复杂的治理工作。而dsl-kibana的价值就在于它把最需要的那部分能力独立出来了。这样一来团队就可以按自己的页面风格改造按自己的权限体系接入按自己的审计要求扩展按自己的平台规范封装从企业落地角度看这样的方式通常更轻、更稳也更划算。【技术上为什么适合继续扩展】这个项目在结构上也尽量做了拆分核心模块大致包括src/App.vue页面与主流程控制src/kibanaConsoleParser.js多请求块解析src/requestExecution.js请求执行与取消控制src/kibanaConsoleAutocomplete.js编辑器补全适配层src/kibanaConsoleAutocompleteCore.js补全规则核心算法这意味着后续如果你要继续扩展也会比较顺手比如接公司内部认证体系接内部网关或代理层接审计日志增加企业自定义接口增加企业自定义补全规则改造成内部平台组件【一个简单示例】项目默认请求本地 Elasticsearchhttp://localhost:9200页面打开后可以直接输入GET /_search { query: { match_all: {} } }然后点击请求块左侧▶执行或者按Ctrl Enter在右侧查看结果、状态码和耗时如果一份文档里写了多段请求也可以按块分别执行。【适合哪些人关注这个项目】我觉得主要适合下面几类人日常会写 Elasticsearch DSL 的工程师如果你平时经常要调试 DSL、验证查询语句、排查索引问题这个工具会比较顺手。正在做企业内部平台建设的团队如果你们已经有自己的研发平台、运维平台或数据平台但又需要一个可控的 ES DSL 控制台能力这个项目会比较有参考价值。对编辑器和自动补全实现感兴趣的开发者如果你想研究 Kibana Console 类交互、请求块解析、自动补全实现和规则匹配思路这个项目也适合拿来学习。【最后】我并不觉得这个项目的价值在于“替代 Kibana”。Kibana 依然是一个成熟、完整的平台。而dsl-kibana更像是把 Kibana Console 中最高频、最实用的 DSL 能力单独抽出来用更轻量的方式服务企业集成、内部工具和二次开发场景。如果你所在的团队也有下面这些需求已经有自己的平台但缺一个顺手的 ES DSL 控制台不想为了一个查询能力整体接入 Kibana想保留 Kibana Console 的核心体验又希望更方便做企业内部二次开发那这个项目也许会对你有一些帮助。项目已经开源在 GitHubhttps://github.com/xiaohongaiweno/dsl-kibana如果你觉得这个方向有价值欢迎看看也欢迎给项目点一个 Star。如果你们团队也在做 Elasticsearch 工具平台、企业内部控制台或者搜索研发基础设施建设欢迎交流。如果这篇文章对你有帮助也欢迎转发给有类似需求的朋友。
返回列表