@open-node/antman 窥探进程内部,让 Node.js 生产环境线上调试成为可能

解决了什么问题?

日常在开发服务端代码,很多是服务类型的,比如基于http的api,或者一些任务脚本,需要长时间驻留系统来处理消息队列,这些进程一旦发生bug,有时候很难还原发生bug时进程中个变量的状态。比如常见的内存溢出,这些情况发生后,排查问题非常吃力,因为很多时候进程只是崩掉了,或者输出了一大堆晦涩难懂的错误信息。排查此类问题,一般的做法就在各个关键点输出大量的日志,后期分析日志。而很多时候如果程序启动前没有加入日志的采集就很难在不重启的情况下有所收获了。

那遇到这种情况能怎么办?

  • @open-node/antman 这个项目就是基于此痛点开发的, 项目的出发点是在进程启动的时候提前设置好一些需要查看的关键变量,之后通过socket服务,可以让外部通过链接提供的socket服务来随时查看,或者改变这些变量。而这个过程中,进程完全无需重启
  • @open-node/antman 包含两部分功能,一部分在进程代码中引入,并且把需要调试查看的变量注册上去 另一部分功能是一个命令行工具,用来充当客户端,用来连接启动了调试功能的socket服务,从而实现进程的调试
  • @open-node/antman 的做用户正如其名一样,类似于一个蚁人,可以进到进程内部,帮你查看或者改变一些变量,而且重要的是这个过程中进程并不需要重启, 所以也可以利用这个来做一些功能开关的管理,可以随时打开或者关闭某些开关。

开放了socket接口用来调试进程,会不会被攻击

  • 理论上,确实需要注意这个问题,所以 @open-node/antman 项目内部提供了身份验证,利用了google 身份认证算法,口令通过私钥动态计算,每隔30秒变化一次。因此安全性可以得到保证。另外socket链接有两种模式,一种是sock文件来建立连接,只要保证sock文件不被别人读取到即可,另外一种是ip和端口,为了增强安全性,可以绑定端口到内网ip上,这样只有同一内网才可以访问。可以极大的提升安全性.

@open-node/antman 用法直接参考项目的README

npm install @open-node/antman
npm install @open-node/antman -g 

操作简单 DEMO

@open-node/antman 调试DEMO

项目地址

@open-node/antman

发条js调试工具_小工具大帮手,利用 @open-node/antman 实现 node.js 进程线上调试,无须重启...相关推荐

  1. 禅道 bug状态 open_小工具大帮手,利用 @open-node/antman 实现 node.js 进程线上调试,无须重启...

    @open-node/antman 窥探进程内部,让 Node.js 生产环境线上调试成为可能 解决了什么问题? 日常在开发服务端代码,很多是服务类型的,比如基于http的api,或者一些任务脚本,需 ...

  2. 工具用途_小工具大用途:万能扳手、开瓶器、开箱器,DIY16种用法,玩过吗

    小工具大用途,用法1:轻松开瓶盖 小工具大用途,用法2:一字螺丝刀,拧螺丝很轻松 小工具大用途,用法3:十字螺丝刀,轻松拧螺丝 小工具大用途,用法4:轻松撬罐头盖 小工具大用途,用法5:开箱如此简单, ...

  3. 分享JS压缩混淆小工具

    JS压缩混淆工具 一.功能介绍 编写了一个JS压缩混淆小工具. 选择目录文件夹,指定当前目录下需要压缩的JS文件, 合并(复选框): 勾选 表示把当面目录下的所有JS文件合并压缩混淆成一个独立的 al ...

  4. 集60+款小工具于一身,解决一堆问题的神器,务必装上

    集60+款小工具于一身,解决一堆问题的神器,务必装上 今天推荐一款电脑必装软件:万彩办公大师,强烈推荐安装上,真的办公必备,绝不吃亏,良心免费. 点击链接下载:下载链接 提取码:572197 「软件概 ...

  5. 工具用途_见微知著,小工具大用途!

    为什么同一个饮品,店家做的尝起来如此美味.拿到配方后自己做的不是甜了就是酸了呢? 相信很多朋友都有这种疑惑. 但真相往往就会在不经意间被忽视,很多初学者并没有老师傅那样的熟练手感,可以做到信手拈来的程 ...

  6. 发条js调试工具_【转载】移动端js调试工具:eruda

    通常写前端页面都在Chrome浏览器的开发模式下进行调试,但是写放在移动端的H5页面时,有时候会遇到在Chrome上调试没有问题,但是在手机的浏览器上有问题的情况:也有的页面是需要放在微信公众号中的, ...

  7. js密码生成器小工具

    此小工具是我突发奇想想的一个密码加密算法, 通过对一个小数的幂指数的不断迭代运算, 可以取得完全打乱字符排列的效果, 用户只要略微更改这密码初值,密码模板,计算指数中的任何一个, 所运算的结果都千差万 ...

  8. JS 倒计时展示小工具

    废话开篇:JS 通过操控标签的隐藏与显示来实现倒计时展示小工具 一.实现效果 1.默认展示数字 2.数字倒计时 3.数字倒计时展示虚位 4.数字倒计时不展示虚位 5.小数 6.负数 7.小数倒计时 每 ...

  9. python祝福祖国代码_“小程序 大梦想”之创意编程校园邀请赛------53信息技术学科周...

    原标题:"小程序 大梦想"之创意编程校园邀请赛------53信息技术学科周 如今"人工智能"."创意编程"这些新热词已经深入人们的学习和生 ...

最新文章

  1. Objective-C代码的文件扩展名
  2. jdk安装教程_在JDK 12精简数字格式中使用最小分数数字
  3. 【Centos】更新为北京时间
  4. js流程控制题——如何实现一个LazyMan
  5. centos 7 安装 google chrome 浏览器 (不是教程,只是为了以后自己可能用到)
  6. asp.net Linux 界面,在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
  7. 【李宏毅机器学习】Gradient Descent_1 梯度下降(p5、p6、p7 )学习笔记
  8. Python实战从入门到精通第十一讲——可接受任意数量参数的函数
  9. SQL Server 连接查询(内连接查询)
  10. pcduino_arm_rtl8187L 驱动安装编译过程
  11. Java 常用数据类型(总结)
  12. 计算机文件夹里没有显示桌面,桌面没有图标显示的解决方法
  13. Channel 用法
  14. spark 和 elk 技术栈对比?
  15. java文字列检查_java 检测文本、文件编码
  16. 正整数m的百位数字python_求正整数m的百位数字
  17. 最清晰易懂的Elasticsearch操作手册|收藏夹必备
  18. E450连接蓝牙耳机
  19. 基于单片机的智能教室控制系统的设计
  20. Win 10系统下,用stc-isp烧程序的时候,出现“串口已被其它程序打开或该串口不存在”的解决方法

热门文章

  1. 提速20倍!谷歌AI发布TensorFlow 3D
  2. NeurIPS 2020 | Focal Loss改进版来了!GFocal Loss:良心技术,无Cost涨点!
  3. 无需代码即可看视频造游戏!英伟达再现神操作!
  4. 深度学习的多个 loss 是如何平衡的?
  5. 如何评价CVPR 2020年投稿量过万的盛况?
  6. HTMLParser的初步学习
  7. RESTful之自动生成接口文档
  8. 表单提交、页面注册案例
  9. 机器学习与优化基础(Machine Learning and Optimization)
  10. Mysql 根据一个表数据更新另外一个表