《Node.js调试指南》从CPU、内存、代码、工具、APM、日志、监控、应用这8 个方面讲解如何调试 Node.js,大部分小节都会以一段经典的问题代码为例进行分析并给出解决方案。其中,第1 章讲解CPU 相关的知识,涉及各种CPU 性能分析工具及火焰图的使用;第2 章讲解内存相关的知识,例如Core Dump 及如何分析 heapsnapshot 文件;第3 章讲解代码相关的知识,例如如何从代码层面避免写出难以调试的代码,并涉及部分性能调优知识;第4 章讲解工具相关的知识,涉及常用的Node.js 调试工具和模块;第5 章讲解APM(Application Performance Management)相关的知识,例如两个不同的应用程序性能管理工具的使用;第6 章讲解日志相关的知识,例如如何使用Node.js 的async_hooks 模块实现自动日志打点,并结合各种工具进行使用;第7 章讲解监控相关的知识,例如如何使用Telegraf InfluxDB Grafana 搭建一个完整的Node.js 监控系统;第8 章讲解应用相关的知识,给出了两个完整的Node.js 应用程序的性能解决方案。《Node.js调试指南》并不适合Node.js 初学者,适合有一定Node.js 开发经验的人阅读。笔者倾向于将本书定位成参考书,每一小节基本独立,如果遇到相关问题,则可以随时翻到相应的章节进行阅读。
前言
第1章 CPU
1.1 理解perf与火焰图(Flame Graph)
1.2 使用v8-profiler分析CPU的使用情况
1.3 Tick Processor及 Web UI
第2章 内存
2.1 gcore与 llnode
2.2 heapdump
2.3 memwatch-next
2.4 cpu-memory-monitor
第3章 代码
3.1 Promise
3.2 Async+Await
3.3 Error Stack
3.4 node@8
3.5 Rust Addons
3.6 Event Loop
3.7 处理uncaught Exception
第4章 工具
4.1 Source Map
4.2 Chrome Dev Tools
4.3 Visual Studio Code
4.4 debug+repl2+power-assert
4.5 supervisor-hot-reload
第5章 日志
5.1 koa-await-breakpoint
5.2 使用async_hooks
5.3 ELK
5.4 Open Tracing+Jaeger
5.5 使用Sentry
第6章 APM
6.1 使用New Relic
6.2 Elastic APM
第7章 监控
7.1 Telegraf+Influx DB+Grafana(上)
7.2 Telegraf+Influx DB+Grafana(下)
第8章 应用
8.1 使用node-clinic
8.2 alinode

