Skip to content
📖0 阅读·🤍0 点赞

Elasticsearch Log:让 ES 查询变得透明可见

作者:舒一笑不秃头
理念:先给予价值,再谈论工具


写在前面:我为什么要做这个插件

作为一名开发者,我经历过无数次这样的场景:

  • 线上出现慢查询,但不知道应用到底发了什么 DSL
  • 想优化 ES 性能,却看不到真实的查询语句
  • 调试时在日志里翻来翻去,复制粘贴 JSON 格式还乱了
  • 想学习 ES 最佳实践,但不知道框架底层生成了什么查询

我意识到:问题不在于我们不够努力,而在于信息被隐藏了。

理查德·沃曼说过:"信息焦虑的根源不是信息过载,而是信息无法被理解。" 我们需要的不是更多的日志,而是让关键信息在正确的时间、以正确的方式呈现

所以我做了 Elasticsearch Log 这个插件。它不是为了炫技,而是为了解决真实的痛点。


这个插件能为你创造什么价值

1. 让隐藏的信息变得可见

你的痛点:

  • ES 查询被框架封装,看不到实际发送的 DSL
  • 日志输出混乱,关键信息淹没在噪音中
  • 需要手动复制粘贴,效率低下

插件的价值:

  • 自动捕获:无需修改代码,自动监控所有 ES 查询
  • 智能解析:支持 REST Client、cURL、Spring Data 等多种格式
  • 可视化展示:独立工具窗口,JSON 自动格式化,一目了然

这意味着什么?
你不再需要在茫茫日志中寻找,不再需要手动整理格式。信息主动来找你,而且是以你能理解的方式。


2. 把时间还给真正重要的事

你的痛点:

  • 排查问题时,80% 的时间花在"找到查询语句"上
  • 性能优化时,不知道哪些查询慢,哪些查询频繁
  • 学习 ES 时,看文档和实际应用脱节

插件的价值:

  • 实时监控:查询执行时间、HTTP 状态码一目了然
  • 智能搜索:关键字搜索、HTTP 方法筛选、时间范围过滤
  • 历史记录:自动保存 1000 条记录,随时回溯

这意味着什么?
你可以把精力放在"解决问题"而不是"找到问题"上。时间是最宝贵的资源,这个插件帮你节省的每一分钟,都可以用来创造更大的价值。


3. 从"我不知道"到"我明白了"

理查德·沃曼提出的信息架构五大原则之一是:按照用户的理解方式组织信息

你的痛点:

  • 看到错误码,但不知道具体是什么查询出错
  • 想在 Kibana 中验证查询,但格式转换麻烦
  • 团队协作时,难以分享和讨论具体的查询

插件的价值:

  • 🎨 彩色标识:GET(蓝)、POST(绿)、PUT(橙)、DELETE(红),视觉化区分
  • 🎨 详情面板:点击查看完整信息,包括请求、响应、耗时
  • 🎨 一键复制:支持复制 DSL、生成 Kibana 格式、复制完整信息
  • 🎨 实时更新:新查询自动出现,无需刷新

这意味着什么?
信息不再是冰冷的文本,而是有结构、有层次、可操作的知识。你能快速理解发生了什么,并立即采取行动。


我的设计哲学:给予,而非索取

哈里·马克思说:"成功的秘诀是先给予价值,而不是先索取回报。"

这个插件的设计遵循三个原则:

原则一:非侵入式

  • ❌ 不需要修改你的代码
  • ❌ 不需要添加依赖
  • ❌ 不需要改变你的工作流程
  • ✅ 只需要安装插件,它就在后台默默工作

原则二:性能优先

  • 异步处理,不阻塞 IDE
  • 智能去重,避免信息冗余
  • 容错机制,损坏文件自动恢复
  • 你甚至感觉不到它的存在,直到你需要它

原则三:开箱即用

  • 安装即可使用,无需复杂配置
  • 界面直观,符合 IntelliJ 设计规范
  • 功能实用,每个按钮都有明确的价值

适合谁使用

如果你是后端开发者

  • 调试 Spring Boot + Elasticsearch 应用时,实时查看查询
  • 排查线上问题时,快速定位慢查询
  • 学习 ES DSL 语法时,看看框架是怎么生成查询的

如果你是性能优化工程师

  • 分析查询执行时间,找出性能瓶颈
  • 对比不同查询方式的效率
  • 记录优化前后的查询变化

如果你是技术 Leader

  • Code Review 时,查看团队成员写的查询是否合理
  • 制定 ES 使用规范时,基于真实数据做决策
  • 培训新人时,展示实际的查询案例

使用场景示例

场景 1:快速定位慢查询

问题:用户反馈搜索功能很慢

传统方式:
1. 打开日志文件
2. 搜索 "elasticsearch" 关键字
3. 复制 JSON 到编辑器格式化
4. 分析查询语句
5. 找到耗时信息
⏱️ 耗时:5-10 分钟

使用插件:
1. 打开 ES Log Monitor 工具窗口
2. 按执行时间排序
3. 点击慢查询查看详情
⏱️ 耗时:30 秒

场景 2:学习 Spring Data Elasticsearch

问题:不知道 @Query 注解生成了什么 DSL

传统方式:
1. 查阅文档
2. 猜测可能的查询
3. 尝试运行
4. 还是不确定
⏱️ 耗时:不确定,可能需要反复尝试

使用插件:
1. 运行你的代码
2. 在工具窗口看到实际的 DSL
3. 复制到 Kibana 验证
4. 理解了!
⏱️ 耗时:1 分钟

场景 3:团队协作讨论

问题:需要和同事讨论某个查询的优化方案

传统方式:
1. 截图日志
2. 或者复制粘贴到聊天工具
3. 格式乱了,重新整理
4. 发送
⏱️ 耗时:3-5 分钟

使用插件:
1. 右键点击查询记录
2. "Copy Full Info"
3. 粘贴到聊天工具
⏱️ 耗时:10 秒

核心功能一览

📊 实时监控

  • 自动捕获所有 ES DSL 查询
  • 支持 REST Client、cURL、Spring Data 等格式
  • 记录执行时间和 HTTP 状态码
  • 非侵入式,无需修改代码

🔍 查询管理

  • 可视化展示,JSON 自动格式化
  • 关键字搜索和多维度过滤
  • 本地持久化,最多 1000 条记录
  • 智能去重,避免信息冗余

🎨 用户体验

  • 彩色标识,HTTP 方法和状态码一目了然
  • 实时开关控制,随时启用/禁用
  • 详情面板,完整信息展示
  • 一键复制,支持 Kibana 格式

💡 技术特色

  • 异步处理,不影响 IDE 性能
  • 容错机制,自动备份和恢复
  • 实时通知,UI 自动更新
  • 符合 IntelliJ 设计规范

开始使用

安装

  1. 打开 IntelliJ IDEA
  2. 进入 Settings → Plugins
  3. 搜索 "Elasticsearch Log"
  4. 点击 Install

使用

  1. 运行你的 Spring Boot 应用
  2. 在底部工具栏找到 "ES Log Monitor"
  3. 点击 "Enable Monitoring" 开关
  4. 执行一些 ES 查询
  5. 查看捕获的查询记录

就这么简单!


最后想说的话

我做这个插件,不是为了展示技术有多厉害,而是因为我自己需要它。

我相信,好的工具应该是隐形的——它不应该让你学习新的概念,不应该改变你的工作方式,不应该增加你的负担。它应该像空气一样,你感觉不到它的存在,但它让你的工作变得更轻松。

我也相信,价值应该先于价格——这个插件的每一个功能,都是为了解决真实的问题,为了节省你的时间,为了让你的工作更有成就感。

如果这个插件能帮你节省哪怕 10 分钟,能让你少一次焦虑,能让你多一次"啊哈时刻",那我的目标就达到了。


关于作者

我是舒一笑不秃头,一名热爱编程的开发者。

如果你有任何问题、建议或想法,欢迎随时联系我。我很乐意听到你的反馈。


许可与支持

这是一个付费插件,但我承诺:

  • ✅ 持续更新和维护
  • ✅ 及时响应问题和建议
  • ✅ 不断优化性能和体验
  • ✅ 根据用户反馈添加新功能

你的支持,是我持续改进的动力。


"The goal is to transform data into information, and information into insight."
— Carly Fiorina

让我们一起,把 Elasticsearch 查询从数据变成信息,从信息变成洞察。


🤝 社区交流

💬 加入开发者交流群

欢迎加入 PandaCoder 工具宇宙开发者交流群,与作者和其他开发者一起交流技术、分享经验、反馈问题!我们提供多种交流渠道:

📱 微信交流群 & 💬 QQ交流群

舒一笑不秃头微信
扫码添加微信好友,备注 PandaCoder工具宇宙交流,可以拉你进微信交流群
PandaCoder工具宇宙开发者交流QQ群
扫码加入QQ群,与作者和开发者直接交流

交流群内可以:

  • 💡 获取最新的插件更新和技术动态
  • 🐛 反馈使用问题和改进建议
  • 🔧 交流开发经验和最佳实践
  • 📚 获取技术文档和教程资源
  • 🎯 参与功能讨论和产品规划

📱 关注公众号

舒一笑的架构笔记
扫码关注「舒一笑的架构笔记」,获取最新技术动态和深度架构解析

公众号内可以:

  • 📖 获取独家技术文章和深度解析
  • 🔥 提前了解PandaCoder工具宇宙最新功能和更新计划
  • 💬 与作者一对一交流技术问题
  • 📚 免费获取精品技术文档和学习资料
  • 🎁 参与抽奖活动赢取精美礼品和技术书籍

Elasticsearch Log - 让 ES 查询变得透明可见

v2025.5.1 (敬请期待)

v2025.4.1 (2025-12-05)

  • ✅ 实现DSL监控状态持久化配置,监控启用状态存储到项目级别设置中
  • ✅ 优化启用DSL监控时为运行中的进程重新附加监听器
  • ✅ 优化许可证到期时间提示信息
  • ✅ 增加插件相关信息介绍

Made with ❤️ by 舒一笑不秃头

💬

评论功能

当前站点为 GitHub Pages 镜像版本,不支持评论功能。

如需发表评论,请访问主域名版本:

🚀 前往 主域名 版本评论
✅ 支持文字评论
✅ 支持图片上传

用代码书写人生 | This site is powered by Netlify

🌙