文档目录

第 4 章配套代码索引

这一章的代码大多是命令与配置,而不是业务代码——因为工具链的价值在于「会采、会看」。 凡是前三章已经给过的(Micrometer 四层埋点、k6 三种负载曲线、Prometheus Compose),这里不重复,只给索引指路。

一、文件清单

文件 对应小节 内容
01-load-generators.md 4.1 负载生成器 k6 进阶用法 + 压测机自查脚本
03-async-profiler.md 4.3 async-profiler 四类事件命令全集 + 火焰图解读 + diff
04-jfr-and-jcmd.md 4.4 JFR 与 jcmd JFR 三种用法 + jcmd 应急 + jfr 命令行分析
05-system-observability.md 4.5 系统级观测 sys/steal/上下文切换 + IO + 网络观测脚本
06-app-observability.md 4.6 应用可观测性 OTel 追踪 + 日志异步化 + 基数控制
07-data-and-middleware.md 4.7 数据与中间件观测 PG 四视图 + 连接池判定 + Redis
08-container-interference.md 4.8 容器与编排的干扰 节流诊断 + JVM 内存对齐 + 环境一致性检查
09-lab4.md 4.9 Lab 4 Lab 4 编排与验收脚本

4.2(两类现象两条路径)没有独立代码——它的验证在 03(对比 cpu 与 wall 两张图)。

二、前三章已经给过的代码(不重复)

需要什么 去哪找
Micrometer 四层指标埋点 ch1 code 01
依赖级 Timer + 延迟分解 PromQL ch1 code 03
Prometheus + Grafana Compose ch3 code 04(观测栈在 4.9 Lab)
k6 阶梯/恒定/尖峰脚本 ch3 code 04
浸泡脚本 + 指标采样 ch3 code 05
崩溃取证(jcmd 线程快照) ch3 code 06
环境元数据采集 ch1 code 07

三、需要安装的工具

工具 安装方式 用途
async-profiler 下载解压(GitHub releases) 四类火焰图
k6 brew install k6 / 官方脚本 压测
JFR JDK 自带 常开剖析
JDK Mission Control jdk.java.net/jmc 分析 JFR
Docker — 观测栈
可选:perf、bpftrace 系统包管理 内核级观测

验证工具可用性:

asprof --version 2>/dev/null || echo "❌ 未安装 async-profiler"
k6 version 2>/dev/null || echo "❌ 未安装 k6"
jcmd -h > /dev/null 2>&1 && echo "✅ jcmd 可用"
jfr --version 2>/dev/null || echo "❌ jfr 命令不可用"
docker info > /dev/null 2>&1 && echo "✅ Docker 可用"

四、本章的核心验证目标

做完本章,你必须能回答这三个问题(它们是 Lab 4 的验收核心):

  1. 只采 CPU 火焰图会得出什么错误结论?(答案在 4.2 + Lab 4 任务 4)
  2. 怎么确认容器 CPU 节流?(答案在 4.8)
  3. pending > 0 意味着什么,接下来该做什么?(答案在 4.7)

这三个问题覆盖了本章 80% 的实用价值。 其余内容(系统观测、追踪、日志)是补充。