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 设计规范
开始使用
安装
- 打开 IntelliJ IDEA
- 进入 Settings → Plugins
- 搜索 "Elasticsearch Log"
- 点击 Install
使用
- 运行你的 Spring Boot 应用
- 在底部工具栏找到 "ES Log Monitor"
- 点击 "Enable Monitoring" 开关
- 执行一些 ES 查询
- 查看捕获的查询记录
就这么简单!
最后想说的话
我做这个插件,不是为了展示技术有多厉害,而是因为我自己需要它。
我相信,好的工具应该是隐形的——它不应该让你学习新的概念,不应该改变你的工作方式,不应该增加你的负担。它应该像空气一样,你感觉不到它的存在,但它让你的工作变得更轻松。
我也相信,价值应该先于价格——这个插件的每一个功能,都是为了解决真实的问题,为了节省你的时间,为了让你的工作更有成就感。
如果这个插件能帮你节省哪怕 10 分钟,能让你少一次焦虑,能让你多一次"啊哈时刻",那我的目标就达到了。
关于作者
我是舒一笑不秃头,一名热爱编程的开发者。
- 📧 邮箱:yixiaoshu88@163.com
- 🌐 博客:https://www.poeticcoder.com
- 💡 理念:用技术创造价值,让开发更简单
如果你有任何问题、建议或想法,欢迎随时联系我。我很乐意听到你的反馈。
许可与支持
这是一个付费插件,但我承诺:
- ✅ 持续更新和维护
- ✅ 及时响应问题和建议
- ✅ 不断优化性能和体验
- ✅ 根据用户反馈添加新功能
你的支持,是我持续改进的动力。
"The goal is to transform data into information, and information into insight."
— Carly Fiorina
让我们一起,把 Elasticsearch 查询从数据变成信息,从信息变成洞察。
🤝 社区交流
💬 加入开发者交流群
欢迎加入 PandaCoder 工具宇宙开发者交流群,与作者和其他开发者一起交流技术、分享经验、反馈问题!我们提供多种交流渠道:
📱 微信交流群 & 💬 QQ交流群
![]() 扫码添加微信好友,备注 PandaCoder工具宇宙交流,可以拉你进微信交流群 | ![]() 扫码加入QQ群,与作者和开发者直接交流 |
交流群内可以:
- 💡 获取最新的插件更新和技术动态
- 🐛 反馈使用问题和改进建议
- 🔧 交流开发经验和最佳实践
- 📚 获取技术文档和教程资源
- 🎯 参与功能讨论和产品规划
📱 关注公众号

扫码关注「舒一笑的架构笔记」,获取最新技术动态和深度架构解析
公众号内可以:
- 📖 获取独家技术文章和深度解析
- 🔥 提前了解PandaCoder工具宇宙最新功能和更新计划
- 💬 与作者一对一交流技术问题
- 📚 免费获取精品技术文档和学习资料
- 🎁 参与抽奖活动赢取精美礼品和技术书籍
Elasticsearch Log - 让 ES 查询变得透明可见
v2025.5.1 (敬请期待)
v2025.4.1 (2025-12-05)
- ✅ 实现DSL监控状态持久化配置,监控启用状态存储到项目级别设置中
- ✅ 优化启用DSL监控时为运行中的进程重新附加监听器
- ✅ 优化许可证到期时间提示信息
- ✅ 增加插件相关信息介绍
Made with ❤️ by 舒一笑不秃头



评论功能
当前站点为 GitHub Pages 镜像版本,不支持评论功能。
如需发表评论,请访问主域名版本:
🚀 前往 主域名 版本评论